In this RMarkdown file, the data-analysis for the manuscript “Multisystem inflammatory syndrome in children related to COVID-19: a systematic review” is described. The complete data-analysis can be reproduced from the data collection sheet (in .xls format), provided in the supplementary data.
knitr::opts_chunk$set(cache = FALSE, warning = FALSE, message = FALSE)
options(digits = 3)
library(tidyverse)
require(readxl)
require(httr)
require(reshape2)
require(broom)
require(RColorBrewer)
require(scales)
require(ggrepel)
require(gridExtra)
require(ggExtra)
library(ggbeeswarm)
require(ggpubr)
library(cowplot)
library(naniar)
require(DT)
require(zoo)
require(psych)
library(skimr)
library(UpSetR)
library(see)
library(wesanderson)
options(scipen=999)
co_hb <- 12
co_neutrophilia <- 8000
co_CRP <- 10
co_lympho <- 1250
co_fibrino <- 400
co_Ddim <- 250
co_ferritin <- 300
co_albu <- 34
co_PCT <- 0.49
co_LDH <- 280
co_IL6 <- 16.4
co_ESR <- 22
co_BNP <- 100
co_NTproBNP <- 400
co_tropo <- 40
co_WBC <- 11000
co_platelet <- 150000
co_sodium <- 135
#input = df_cohort_controls
#find = "max"
#param = "CRP"
collapse_labvals_cohort <- function(input, find, param){
if (find == "max"){
df <- input %>% select(contains(param) | contains("cohort_id") | contains("cohort_type") | contains("tot_cases_n"))
print("Column extracted from cohorts:")
print(colnames(df))
df_med <- df %>% select(contains("med"))
df_med <- type_convert(df_med)
df_med <- df_med %>% mutate_all(funs(replace_na(., -999)))
# colnames(df_med)[max.col(df_med,ties.method="first")]
df_med <- df_med %>% mutate(med = as.numeric(apply(df_med, 1, max)))
df_min <- df %>% select(contains("Q1"))
df_min <- type_convert(df_min)
df_min <- df_min %>% mutate_all(funs(replace_na(., 0)))
#colnames(df_min)[max.col(df_min,ties.method="first")]
df_min <- df_min %>% mutate(min = as.numeric(apply(df_min, 1, max)))
df_max <- df %>% select(contains("Q3"))
df_max <- type_convert(df_max)
df_max <- df_max %>% mutate_all(funs(replace_na(., 0)))
#colnames(df_max)[max.col(df_max,ties.method="first")]
df_max <- df_max %>% mutate(max = as.numeric(apply(df_max, 1, max)))
df_full <- cbind(df %>% select(cohort_id, cohort_type, tot_cases_n), df_med %>% select(med), df_min %>% select(min), df_max %>% select(max))
df_full[df_full == -999] <- NA
names(df_full)[names(df_full) == 'max'] <- paste0(param, "_max")
names(df_full)[names(df_full) == 'min'] <- paste0(param, "_min")
names(df_full)[names(df_full) == 'med'] <- paste0(param, "_med")
df_full$data_descr <- "IQR"
df_full$cohort_id <- paste0(df_full$cohort_id, " (n = ", as.character(df_full$tot_cases_n),")")
write.csv(df_full, paste0("./data/cohort_", param, ".csv"))
print(datatable(df_full, caption = paste0("overview of ", param)))
return(df_full)
}
else if (find == "min"){
df <- input %>% select(contains(param) | contains("cohort_id") | contains("cohort_type") | contains("tot_cases_n"))
print("Column extracted from cohorts:")
print(colnames(df))
df_med <- df %>% select(contains("med"))
df_med <- type_convert(df_med)
df_med <- df_med %>% mutate_all(funs(replace_na(., 1e6)))
# colnames(df_med)[max.col(df_med,ties.method="first")]
df_med <- df_med %>% mutate(med = as.numeric(apply(df_med, 1, min)))
df_min <- df %>% select(contains("Q1"))
df_min <- type_convert(df_min)
df_min <- df_min %>% mutate_all(funs(replace_na(., 1e6)))
#colnames(df_min)[max.col(df_min,ties.method="first")]
df_min <- df_min %>% mutate(min = as.numeric(apply(df_min, 1, min)))
df_max <- df %>% select(contains("Q3"))
df_max <- type_convert(df_max)
df_max <- df_max %>% mutate_all(funs(replace_na(., 1e6)))
#colnames(df_max)[max.col(df_max,ties.method="first")]
df_max <- df_max %>% mutate(max = as.numeric(apply(df_max, 1, min)))
df_full <- cbind(df %>% select(cohort_id, cohort_type, tot_cases_n), df_med %>% select(med), df_min %>% select(min), df_max %>% select(max))
df_full[df_full == 1e6] <- NA
names(df_full)[names(df_full) == 'max'] <- paste0(param, "_max")
names(df_full)[names(df_full) == 'min'] <- paste0(param, "_min")
names(df_full)[names(df_full) == 'med'] <- paste0(param, "_med")
df_full$data_descr <- "IQR"
df_full$cohort_id <- paste0(df_full$cohort_id, " (n = ", as.character(df_full$tot_cases_n),")")
write.csv(df_full, paste0("./data/cohort_", param, ".csv"))
print(datatable(df_full, caption = paste0("overview of ", param)))
return(df_full)
}
}
#input = df_singlecases
#find = "max"
#param = "CRP"
collapse_labvals_single <- function(input, find, param){
if (find == "max"){
df <- input %>% select(contains(param) | contains("cohort_id"))
print("Column extracted from single cases:")
print(colnames(df))
df_coll <- df %>% mutate_all(funs(replace_na(., -999)))
df_coll <- type_convert(df_coll)
# colnames(df_med)[max.col(df_med,ties.method="first")]
df_coll <- df_coll %>% mutate(max = as.numeric(apply(df_coll, 1, max)))
df_coll[df_coll == -999] <- NA
names(df_coll)[names(df_coll) == 'max'] <- paste0(param, "_max")
df_coll$data_descr <- "IQR"
df_coll$cohort_id <- paste0("single cases (n = ", as.character(n_single_cases),")")
write.csv(skim(df_coll), paste0("./data/singlecases_", param, ".csv"))
return(df_coll)
}
else if (find == "min"){
df <- input %>% select(contains(param) | contains("cohort_id"))
print("Column extracted from single cases:")
print(colnames(df))
df_coll <- df %>% mutate_all(funs(replace_na(., 1e6)))
# colnames(df_med)[max.col(df_med,ties.method="first")]
df_coll <- df_coll %>% mutate(min = as.numeric(apply(df_coll, 1, min)))
df_coll[df_coll == 1e6] <- NA
names(df_coll)[names(df_coll) == 'min'] <- paste0(param, "_min")
df_coll$cohort_id <- paste0("single cases (n = ", as.character(n_single_cases),")")
write.csv(skim(df_coll), paste0("./data/singlecases_", param, ".csv"))
return(df_coll)
}
}
moveme <- function (df, movecommand) {
invec <- names(df)
movecommand <- lapply(strsplit(strsplit(movecommand, ";")[[1]],
",|\\s+"), function(x) x[x != ""])
movelist <- lapply(movecommand, function(x) {
Where <- x[which(x %in% c("before", "after", "first",
"last")):length(x)]
ToMove <- setdiff(x, Where)
list(ToMove, Where)
})
myVec <- invec
for (i in seq_along(movelist)) {
temp <- setdiff(myVec, movelist[[i]][[1]])
A <- movelist[[i]][[2]][1]
if (A %in% c("before", "after")) {
ba <- movelist[[i]][[2]][2]
if (A == "before") {
after <- match(ba, temp) - 1
}
else if (A == "after") {
after <- match(ba, temp)
}
}
else if (A == "first") {
after <- 0
}
else if (A == "last") {
after <- length(myVec)
}
myVec <- append(temp, values = movelist[[i]][[1]], after = after)
}
df[,match(myVec, names(df))]
}
makeBarplot <- function(var_id_cohort, var_id_single, var_id){
n_cohort <- df_cohort %>% select(tot_cases_n) %>% sum()#, outcome_death_n)
var_cohort <- df_cohort[var_id_cohort] %>% sum(., na.rm = TRUE)#, outcome_death_n)
n_single <- df_singlecases %>% nrow()
var_single <- df_singlecases %>% filter(get(var_id_single) == TRUE) %>% nrow()
n_all <- n_cohort + n_single
var_all <- var_cohort + var_single
bar_df_abs <- data.frame(x = c("cohort", "cohort", "single cases", "single cases", "all", "all"), col = c("total", var_id, "total", var_id, "total", var_id), vals = c(n_cohort, var_cohort, n_single, var_single, n_all, var_all) )
bar_df_prct <- data.frame(x = c("cohort", "cohort", "single cases", "single cases", "all", "all"), col = c(paste0(var_id, " -"), paste0(var_id, " +"), paste0(var_id, " -"), paste0(var_id, " +"), paste0(var_id, " -"), paste0(var_id, " +")), vals = c(100-(var_cohort/n_cohort*100), var_cohort/n_cohort*100, 100-(var_single/n_single*100), var_single/n_single*100, 100-(var_all/n_all*100), var_all/n_all*100) )
p_abs <- ggplot(bar_df_abs, aes(x = x, y = vals, fill = col)) +
geom_bar(stat = "identity", position = "dodge") +
theme_bw() +
labs(title = paste0("Total cases vs ", var_id), subtitle = "Absolute numbers", x = "group", y = "n", col = "") +
scale_fill_manual(values = wes_palette("Royal1"))
p_prct <- ggplot(bar_df_prct, aes(x = x, y = vals, fill = col)) +
geom_bar(stat = "identity", position = "fill") +
theme_bw() +
labs(title = paste0(var_id), subtitle = "Percent", x = "group", y = "%", col = "") +
scale_y_continuous(labels = scales::percent)+
scale_fill_manual(values = wes_palette("Royal1"))
ggarrange(p_abs, p_prct, legend = "bottom")
}
makeHeatmap_cohort <- function(param1, colname_single, exclude_single = NULL, plottitle, textsize = 3){
var_cohort <- df_cohort %>% select(("cohort_id") | "tot_cases_n" | ( contains(param1) & contains("_n")))
var_cohort$cohort_id <- paste0(var_cohort$cohort_id, " (n = ", as.character(var_cohort$tot_cases_n),")")
var_cohort <- var_cohort %>%
gather(variable, value, 3:ncol(var_cohort)) %>% group_by(cohort_id, variable) %>% summarize(prct = value/tot_cases_n*100)
var_cohort$variable <- sub("_n", "", var_cohort$variable)
if (!is.null(exclude_single)){
var_single <- df_singlecases %>% select(-contains(exclude_single))
var_single <- var_single %>% select(contains(colname_single))
} else
{
var_single <- df_singlecases %>% select(contains(colname_single))
}
#%>% select(-contains("any"))
cols <- sapply(var_single, is.logical)
var_single[,cols] <- lapply(var_single[,cols], as.numeric)
var_single <- colSums(var_single, na.rm = TRUE)
var_single <- var_single/nrow(df_singlecases)*100
var_single <- as.data.frame(var_single) %>% rownames_to_column()
var_single$cohort_id <- "single_cases"
colnames(var_single) <- c("variable", "prct", "cohort_id")
missing <- setdiff(var_single$variable, var_cohort$variable)
if (length(missing) != 0 ){
missing_df <- data.frame(variable = missing, prct = NA, cohort_id = unique(var_cohort$cohort_id))
var_cohort <- bind_rows(var_cohort, as_tibble(missing_df))
} else if (length(missing) == 0) {
missing <- setdiff(var_cohort$variable, var_single$variable)
if (length(missing) != 0){
missing_df <- data.frame(variable = missing, prct = NA, cohort_id = unique(var_single$cohort_id))
var_single <- bind_rows(var_single, as_tibble(missing_df))
}
}
hm_cohort <- ggplot(var_cohort, aes(x = variable, y = cohort_id, fill = prct)) +
geom_tile() + theme_classic() +
theme(axis.text.x=element_blank(), axis.ticks.x=element_blank(), axis.line=element_blank())+
scale_fill_gradient(low = "yellow", high="red", na.value = "lightgray", limits = c(0,100)) +
labs(x = "", y = "cohort", title =plottitle) +
geom_text(aes(label=round(prct, 2)), size = textsize, color = "black")
hm_single <- ggplot(var_single, aes(x = variable, y = cohort_id, fill = prct)) +
geom_tile() + theme_classic() +
theme(axis.text.x=element_text(angle=90, hjust=1), axis.line=element_blank())+
scale_fill_gradient(low = "yellow", high = "red", na.value = "lightgray", limits = c(0,100))+ labs(y = "cohort") +
geom_text(aes(label=round(prct, 2)), size = textsize, color = "black")
plot_grid(hm_cohort, hm_single, align = "v", nrow = 2, rel_heights = c(1/2, 1/2))
}First, we import the single cases from the general excel sheet and transform the excel sheet so that variables are columns and rows are cases. Columns without any values are also removed.
The single cases from Pouletty (10.1136/annrheumdis-2020-217960) are excluded (as they are included in the cohorts).
df_singlecases <-
read_excel("/Users/rmvpaeme/Onedrive/UGent/PIMS-TS Systematic Review - Data extractie/data extractie.xlsx",
sheet = "Single cases",
skip = 1,
col_names = FALSE)[,-c(1:2)]
df_singlecases <- df_singlecases %>% t()
df_singlecases <- as.data.frame(df_singlecases, stringsAsFactors = FALSE)
nms <- as.vector(df_singlecases[1,])
nms[is.na(nms)] <- 'tmp'
colnames(df_singlecases) <- make.unique(as.character(nms))
df_singlecases <- df_singlecases[-1,]
df_singlecases <- df_singlecases %>% select(-contains("tmp"))
df_singlecases <- df_singlecases %>% select(-variable_id)
df_singlecases <- df_singlecases %>%
mutate_all(funs(str_replace(., "Yes", "yes")))
df_singlecases <- df_singlecases %>%
mutate_all(funs(str_replace(., "No", "no")))
df_singlecases <- df_singlecases %>%
mutate_all(funs(str_replace(., "pos", "yes")))
df_singlecases <- df_singlecases %>%
mutate_all(funs(str_replace(., "neg", "no")))
df_singlecases <- df_singlecases %>%
replace_with_na_all(condition = ~.x == "NA")
df_singlecases <- type_convert(df_singlecases)
df_singlecases_inclPouletty <- df_singlecases
df_singlecases <- df_singlecases %>% filter(doi != "https://10.1136/annrheumdis-2020-217960") # these cases are excluded according to the data sheet
df_singlecases <- df_singlecases[colSums(!is.na(df_singlecases)) > 0]
n_single_cases <- nrow(df_singlecases)In this section, data is summarized. For example, if there are any comorbidities present, a column “comorb_any” is added and annotated as TRUE. The same is done for COVID serology and symptoms of major organ (respiratory, cardiovascular etc).
df_singlecases <- df_singlecases %>% mutate(comorb_any = apply(df_singlecases %>% select(contains("comorb")), 1, any))
df_singlecases <- df_singlecases %>% moveme(., "comorb_any before comorb_cardiovasc")If IgG, IgA, IgM or COVID serology is reported as positive, the column covid_sero_any is annotated as TRUE.
df_singlecases <- df_singlecases %>% mutate(covid_sero_any = apply(df_singlecases %>% select(covid_sero_pos, covid_IgA_pos, covid_IgM_pos, covid_IgG_pos), 1, any))
df_singlecases <- df_singlecases %>% moveme(., "covid_sero_any before covid_sero_pos")If PCR+, stool PCR+, IgG, IgA, IgM or COVID serology is reported as positive, the column covid_pos_any is annotated as TRUE.
df_singlecases <- df_singlecases %>% mutate(covid_pos_any = apply(df_singlecases %>% select(covid_PCR_pos, covid_PCR_stool_pos, covid_sero_pos, covid_IgA_pos, covid_IgM_pos, covid_IgG_pos), 1, any))
df_singlecases <- df_singlecases %>% moveme(., "covid_pos_any before covid_sero_any")If any respiratory symptoms, symp_resp_any is annotated as TRUE.
df_singlecases <- df_singlecases %>% mutate(symp_resp_any = apply(df_singlecases %>% select(symp_resp_NS, symp_resp_URT, symp_resp_dyspnea, symp_resp_pneumonia, symp_resp_failure, symp_resp_chestpain), 1, any))
df_singlecases <- df_singlecases %>% moveme(., "symp_resp_any before symp_resp_NS")If any GI symptoms, symp_GI_any is annotated as TRUE.
df_singlecases <- df_singlecases %>% mutate(symp_GI_any = apply(df_singlecases %>% select(contains("symp_GI")), 1, any))
df_singlecases <- df_singlecases %>% moveme(., "symp_GI_any before symp_GI_NS")If any neurological symptoms, symp_neuro_any is annotated as TRUE.
df_singlecases <- df_singlecases %>% mutate(symp_neuro_any = apply(df_singlecases %>% select(symp_neuro_headache,symp_neuro_meningitis,symp_neuro_meningism,symp_neuro_asthenia,symp_neuro_irritab), 1, any))
df_singlecases <- df_singlecases %>% moveme(., "symp_neuro_any before symp_neuro_GCS")If any renal symptoms, symp_renal_any is annotated as TRUE.
df_singlecases <- df_singlecases %>% mutate(symp_renal_any = apply(df_singlecases %>% select(symp_renal_AKI), 1, any))
df_singlecases <- df_singlecases %>% moveme(., "symp_renal_any before symp_renal_AKI")If any cardiovascular symptoms, symp_cardiovasc_any is annotated as TRUE.
df_singlecases <- df_singlecases %>% mutate(symp_cardiovasc_any = apply(df_singlecases %>% select(symp_cardiovasc_myocard,
symp_cardiovasc_pericard,
symp_cardiovasc_cordilat,
symp_cardiovasc_aneurysm,
symp_cardiovasc_shock,
symp_cardiovasc_tachycard,
symp_cardiovasc_arrhyt), 1, any))
df_singlecases <- df_singlecases %>% moveme(., "symp_cardiovasc_any before symp_cardiovasc_myocard")
write.csv(df_singlecases, paste0("./data/df_singlecases.csv"))
datatable(df_singlecases, caption = "Single cases dataframe")Afterwards, we do the same for the cohort sheet.
The papers by Grimaud et al. and Verdoni et al. are removed from the cohort dataframe, as most information is present in the single cases dataframe.
df_cohort <-
read_excel("/Users/rmvpaeme/Onedrive/UGent/PIMS-TS Systematic Review - Data extractie/data extractie.xlsx",
sheet = "Cohorts",
skip = 1,
col_names = FALSE)[,-c(1:3)]
df_cohort <- df_cohort %>% t()
df_cohort <- as.data.frame(df_cohort, stringsAsFactors = FALSE)
nms <- as.vector(df_cohort[1,])
nms[is.na(nms)] <- 'tmp'
colnames(df_cohort) <- make.unique(as.character(nms))
df_cohort <- df_cohort[-1,]
df_cohort <- df_cohort %>% select(-contains("tmp"))
df_cohort <- df_cohort %>% select(-variable_id)
df_cohort <- df_cohort %>%
mutate_all(funs(str_replace(., "Yes", "yes")))
df_cohort <- df_cohort %>%
mutate_all(funs(str_replace(., "No", "no")))
df_cohort <- df_cohort %>%
mutate_all(funs(str_replace(., "pos", "yes")))
df_cohort <- df_cohort %>%
mutate_all(funs(str_replace(., "neg", "no")))
df_cohort <- df_cohort %>%
replace_with_na_all(condition = ~.x == "NA")
df_cohort <- type_convert(df_cohort)
df_cohort <- df_cohort[colSums(!is.na(df_cohort)) > 0]
df_cohort <- df_cohort %>% filter(doi != "https://doi.org/10.1186/s13613-020-00690-8") %>% filter(doi != "https://doi.org/10.1016/S0140-6736(20)31103-X")
df_cohort_controls <- df_cohort
df_cohort <- df_cohort %>% filter(cohort_type == "covid")
write.csv(df_cohort, paste0("./data/df_cohort.csv"))
datatable(df_cohort, caption = "Cohort dataframe")Click on the any of the tabs above to see descriptive statistics for every variable
How to read
Under “Variable type: logical”, the number of true/falses are depicted. E.g. at the top we can see that there are 95 number of rows (= 95 patients). Overweight has 79 missing values (17% is complete), which means that 95-79=16 patients have either “TRUE” or “FALSE” for overweight. Of these 16, 9 are marked as “TRUE” for overweight.
Download data as .csv on Github
| Name | df_singlecases |
| Number of rows | 95 |
| Number of columns | 156 |
| _______________________ | |
| Column type frequency: | |
| character | 12 |
| logical | 90 |
| numeric | 54 |
| ________________________ | |
| Group variables | None |
Variable type: character
| skim_variable | n_missing | complete_rate | min | max | empty | n_unique | whitespace |
|---|---|---|---|---|---|---|---|
| doi | 0 | 1.00 | 28 | 50 | 0 | 28 | 0 |
| first_author | 0 | 1.00 | 10 | 25 | 0 | 28 | 0 |
| journal | 0 | 1.00 | 6 | 62 | 0 | 22 | 0 |
| prim_input | 0 | 1.00 | 2 | 2 | 0 | 1 | 0 |
| cross_check | 6 | 0.94 | 3 | 20 | 0 | 2 | 0 |
| patientID_pub | 16 | 0.83 | 6 | 10 | 0 | 24 | 0 |
| patientID_int | 0 | 1.00 | 9 | 10 | 0 | 95 | 0 |
| notes | 91 | 0.04 | 12 | 66 | 0 | 4 | 0 |
| sex | 0 | 1.00 | 1 | 1 | 0 | 2 | 0 |
| ethnicity | 61 | 0.36 | 5 | 26 | 0 | 8 | 0 |
| symp_fever_days | 52 | 0.45 | 1 | 3 | 0 | 13 | 0 |
| symp_cardiovasc_LVEF | 40 | 0.58 | 2 | 3 | 0 | 25 | 0 |
Variable type: logical
| skim_variable | n_missing | complete_rate | mean | count |
|---|---|---|---|---|
| overweight | 58 | 0.39 | 0.35 | FAL: 24, TRU: 13 |
| comorb_any | 79 | 0.17 | 1.00 | TRU: 16 |
| comorb_cardiovasc | 70 | 0.26 | 0.04 | FAL: 24, TRU: 1 |
| comorb_resp | 75 | 0.21 | 0.00 | FAL: 20 |
| comorb_resp_astma | 87 | 0.08 | 1.00 | TRU: 8 |
| comorb_resp_hay | 94 | 0.01 | 1.00 | TRU: 1 |
| comorb_diabetes | 75 | 0.21 | 0.00 | FAL: 20 |
| comorb_renal | 75 | 0.21 | 0.00 | FAL: 20 |
| comorb_malignancy | 75 | 0.21 | 0.00 | FAL: 20 |
| comorb_immunodef | 75 | 0.21 | 0.00 | FAL: 20 |
| comorb_CAH | 94 | 0.01 | 1.00 | TRU: 1 |
| comorb_hypothyr | 93 | 0.02 | 1.00 | TRU: 2 |
| comorb_alopecia | 94 | 0.01 | 1.00 | TRU: 1 |
| comorb_crohn | 94 | 0.01 | 1.00 | TRU: 1 |
| comorb_PFAPA | 94 | 0.01 | 1.00 | TRU: 1 |
| comorb_NAFLD | 94 | 0.01 | 1.00 | TRU: 1 |
| comorb_SBS | 94 | 0.01 | 1.00 | TRU: 1 |
| covid_closecontact | 69 | 0.27 | 0.58 | TRU: 15, FAL: 11 |
| covid_PCR_pos | 3 | 0.97 | 0.42 | FAL: 53, TRU: 39 |
| covid_PCR_stool_pos | 79 | 0.17 | 0.12 | FAL: 14, TRU: 2 |
| covid_pos_any | 13 | 0.86 | 1.00 | TRU: 82 |
| covid_sero_any | 33 | 0.65 | 1.00 | TRU: 62 |
| covid_sero_pos | 80 | 0.16 | 1.00 | TRU: 15 |
| covid_IgA_pos | 77 | 0.19 | 1.00 | TRU: 18 |
| covid_IgM_pos | 78 | 0.18 | 0.41 | FAL: 10, TRU: 7 |
| covid_IgG_pos | 45 | 0.53 | 0.94 | TRU: 47, FAL: 3 |
| symp_fever | 0 | 1.00 | 1.00 | TRU: 95 |
| symp_resp_any | 50 | 0.47 | 1.00 | TRU: 45 |
| symp_resp_NS | 82 | 0.14 | 0.69 | TRU: 9, FAL: 4 |
| symp_resp_URT | 80 | 0.16 | 0.73 | TRU: 11, FAL: 4 |
| symp_resp_dyspnea | 66 | 0.31 | 0.76 | TRU: 22, FAL: 7 |
| symp_resp_pneumonia | 48 | 0.49 | 0.70 | TRU: 33, FAL: 14 |
| symp_resp_failure | 66 | 0.31 | 0.66 | TRU: 19, FAL: 10 |
| symp_resp_chestpain | 88 | 0.07 | 0.29 | FAL: 5, TRU: 2 |
| symp_GI_any | 15 | 0.84 | 1.00 | TRU: 80 |
| symp_GI_NS | 85 | 0.11 | 1.00 | TRU: 10 |
| symp_GI_abdopain | 28 | 0.71 | 0.97 | TRU: 65, FAL: 2 |
| symp_GI_vomiting | 39 | 0.59 | 0.95 | TRU: 53, FAL: 3 |
| symp_GI_diarrh | 45 | 0.53 | 0.84 | TRU: 42, FAL: 8 |
| symp_GI_colitis | 91 | 0.04 | 1.00 | TRU: 4 |
| symp_neuro_any | 68 | 0.28 | 1.00 | TRU: 27 |
| symp_neuro_headache | 78 | 0.18 | 0.65 | TRU: 11, FAL: 6 |
| symp_neuro_meningitis | 94 | 0.01 | 1.00 | TRU: 1 |
| symp_neuro_meningism | 81 | 0.15 | 0.43 | FAL: 8, TRU: 6 |
| symp_neuro_asthenia | 88 | 0.07 | 1.00 | TRU: 7 |
| symp_neuro_irritab | 85 | 0.11 | 0.60 | TRU: 6, FAL: 4 |
| symp_dermato_NS | 93 | 0.02 | 1.00 | TRU: 2 |
| symp_renal_any | 80 | 0.16 | 0.87 | TRU: 13, FAL: 2 |
| symp_renal_AKI | 80 | 0.16 | 0.87 | TRU: 13, FAL: 2 |
| symp_cardiovasc_any | 8 | 0.92 | 1.00 | TRU: 87 |
| symp_cardiovasc_myocard | 62 | 0.35 | 1.00 | TRU: 33 |
| symp_cardiovasc_pericard | 59 | 0.38 | 0.61 | TRU: 22, FAL: 14 |
| symp_cardiovasc_cordilat | 40 | 0.58 | 0.18 | FAL: 45, TRU: 10 |
| symp_cardiovasc_aneurysm | 61 | 0.36 | 0.15 | FAL: 29, TRU: 5 |
| symp_cardiovasc_LV_30to55 | 38 | 0.60 | 0.47 | FAL: 30, TRU: 27 |
| symp_cardiovasc_LV_less30 | 68 | 0.28 | 0.22 | FAL: 21, TRU: 6 |
| symp_cardiovasc_shock | 9 | 0.91 | 0.93 | TRU: 80, FAL: 6 |
| symp_cardiovasc_tachycard | 26 | 0.73 | 1.00 | TRU: 69 |
| symp_cardiovasc_arrhyt | 93 | 0.02 | 1.00 | TRU: 2 |
| kawasaki_complete | 44 | 0.54 | 0.29 | FAL: 36, TRU: 15 |
| kawasaki_incomplete | 42 | 0.56 | 0.45 | FAL: 29, TRU: 24 |
| kawasaki_fever | 18 | 0.81 | 0.87 | TRU: 67, FAL: 10 |
| kawasaki_exanthema | 28 | 0.71 | 0.69 | TRU: 46, FAL: 21 |
| kawasaki_extremity | 68 | 0.28 | 0.74 | TRU: 20, FAL: 7 |
| kawasaki_mouth | 50 | 0.47 | 0.53 | TRU: 24, FAL: 21 |
| kawasaki_cervical | 53 | 0.44 | 0.24 | FAL: 32, TRU: 10 |
| kawasaki_conjunctivitis | 32 | 0.66 | 0.67 | TRU: 42, FAL: 21 |
| symp_MAS | 85 | 0.11 | 0.60 | TRU: 6, FAL: 4 |
| symp_effusion | 76 | 0.20 | 0.68 | TRU: 13, FAL: 6 |
| admis_PICU_admis | 52 | 0.45 | 0.98 | TRU: 42, FAL: 1 |
| critcare_NIV | 39 | 0.59 | 0.61 | TRU: 34, FAL: 22 |
| critcare_MV | 42 | 0.56 | 0.51 | TRU: 27, FAL: 26 |
| critcare_inotrop | 18 | 0.81 | 0.79 | TRU: 61, FAL: 16 |
| critcare_ECMO | 61 | 0.36 | 0.09 | FAL: 31, TRU: 3 |
| critcare_RRT | 93 | 0.02 | 1.00 | TRU: 2 |
| rx_cortic | 32 | 0.66 | 0.56 | TRU: 35, FAL: 28 |
| rx_aspirin_low | 68 | 0.28 | 0.78 | TRU: 21, FAL: 6 |
| rx_aspirin_high | 75 | 0.21 | 0.90 | TRU: 18, FAL: 2 |
| rx_aspirin_NS | 88 | 0.07 | 0.71 | TRU: 5, FAL: 2 |
| rx_heparin | 73 | 0.23 | 1.00 | TRU: 22 |
| rx_IVIg_once | 17 | 0.82 | 0.96 | TRU: 75, FAL: 3 |
| rx_IVIg_multip | 84 | 0.12 | 0.36 | FAL: 7, TRU: 4 |
| rx_anakinra | 90 | 0.05 | 1.00 | TRU: 5 |
| rx_tocilizumab | 75 | 0.21 | 1.00 | TRU: 20 |
| rx_infliximab | 93 | 0.02 | 1.00 | TRU: 2 |
| rx_antibiotics | 45 | 0.53 | 1.00 | TRU: 50 |
| rx_plasma | 94 | 0.01 | 1.00 | TRU: 1 |
| rx_remdesivir | 90 | 0.05 | 0.80 | TRU: 4, FAL: 1 |
| outcome_death | 37 | 0.61 | 0.03 | FAL: 56, TRU: 2 |
| outcome_LVdysf | 86 | 0.09 | 0.00 | FAL: 9 |
Variable type: numeric
| skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist |
|---|---|---|---|---|---|---|---|---|---|---|
| date_of_publication | 0 | 1.00 | 43987.13 | 12.83 | 43952.00 | 43979.00 | 43983.00 | 43998.50 | 44011.00 | ▁▅▇▅▆ |
| age | 0 | 1.00 | 9.40 | 4.41 | 0.33 | 6.00 | 9.00 | 12.30 | 20.00 | ▂▇▇▅▂ |
| weight | 71 | 0.25 | 46.77 | 26.61 | 5.60 | 25.00 | 44.50 | 64.50 | 105.00 | ▇▇▇▅▂ |
| BMI | 60 | 0.37 | 21.59 | 6.40 | 12.00 | 16.50 | 20.00 | 25.45 | 36.70 | ▆▇▆▂▃ |
| symp_neuro_GCS | 74 | 0.22 | 13.57 | 2.68 | 4.00 | 13.00 | 15.00 | 15.00 | 15.00 | ▁▁▁▂▇ |
| kawasaki_koyobashi | 85 | 0.11 | 5.10 | 1.52 | 2.00 | 4.50 | 6.00 | 6.00 | 6.00 | ▁▁▁▁▇ |
| lab_Hb_lowest | 77 | 0.19 | 10.39 | 1.94 | 7.00 | 8.67 | 10.95 | 11.75 | 13.10 | ▅▂▁▇▅ |
| lab_WBC_highest | 70 | 0.26 | 18418.40 | 10027.21 | 2900.00 | 11800.00 | 15800.00 | 23110.00 | 40000.00 | ▂▇▂▂▂ |
| lab_lymphocytes_lowest | 34 | 0.64 | 1082.43 | 1106.15 | 170.00 | 510.00 | 860.00 | 1150.00 | 7200.00 | ▇▁▁▁▁ |
| lab_neutrophils | 61 | 0.36 | 14846.53 | 8563.92 | 1500.00 | 9392.50 | 11640.00 | 18780.50 | 36200.00 | ▃▇▃▁▂ |
| lab_platelets_NS | 21 | 0.78 | 189500.00 | 94223.90 | 42000.00 | 121500.00 | 170000.00 | 234750.00 | 516000.00 | ▆▇▃▁▁ |
| lab_platelets_highest | 89 | 0.06 | 583666.67 | 289892.85 | 250000.00 | 431500.00 | 551500.00 | 631000.00 | 1100000.00 | ▇▃▇▁▃ |
| lab_platelets_lowest | 90 | 0.05 | 180600.00 | 90762.33 | 100000.00 | 111000.00 | 136000.00 | 260000.00 | 296000.00 | ▇▁▁▁▅ |
| lab_sodium | 47 | 0.51 | 130.00 | 4.23 | 118.00 | 128.00 | 130.00 | 133.00 | 139.00 | ▂▂▇▇▃ |
| lab_ferritin_NS | 59 | 0.38 | 1257.34 | 1196.76 | 199.00 | 535.00 | 906.50 | 1285.75 | 5440.00 | ▇▂▁▁▁ |
| lab_ferritin_admis | 74 | 0.22 | 1843.70 | 2542.46 | 264.00 | 446.00 | 1089.00 | 1789.00 | 10170.00 | ▇▁▁▁▁ |
| lab_ferritin_peak | 84 | 0.12 | 1348.12 | 1130.04 | 375.80 | 776.15 | 1096.20 | 1346.50 | 4488.00 | ▇▃▁▁▁ |
| lab_Ddim_NS | 55 | 0.42 | 6124.88 | 5689.73 | 320.00 | 2230.00 | 3975.00 | 9155.00 | 24500.00 | ▇▂▂▁▁ |
| lab_Ddim_peak | 86 | 0.09 | 8072.78 | 9005.15 | 508.00 | 2150.00 | 3300.00 | 11510.00 | 27760.00 | ▇▂▃▁▂ |
| lab_lactate | 75 | 0.21 | 3.60 | 2.20 | 1.00 | 1.70 | 3.20 | 5.25 | 8.10 | ▇▃▂▂▂ |
| lab_fibrino | 47 | 0.51 | 707.08 | 286.24 | 179.00 | 537.75 | 710.00 | 810.00 | 2140.00 | ▃▇▁▁▁ |
| lab_triglyc | 83 | 0.13 | 348.00 | 275.10 | 121.00 | 186.00 | 231.50 | 383.75 | 987.00 | ▇▂▁▁▁ |
| lab_albumin_admis | 40 | 0.58 | 26.17 | 7.11 | 17.30 | 20.75 | 24.00 | 31.50 | 43.00 | ▇▅▂▂▂ |
| lab_albumin_lowest | 88 | 0.07 | 24.00 | 2.52 | 21.00 | 22.00 | 24.00 | 25.50 | 28.00 | ▇▁▅▂▂ |
| lab_albumin_NS | 91 | 0.04 | 22.25 | 4.19 | 18.00 | 20.25 | 21.50 | 23.50 | 28.00 | ▃▇▁▁▃ |
| lab_creat | 94 | 0.01 | 2.65 | NA | 2.65 | 2.65 | 2.65 | 2.65 | 2.65 | ▁▁▇▁▁ |
| lab_AST | 75 | 0.21 | 90.15 | 64.00 | 28.00 | 47.00 | 70.00 | 103.50 | 239.00 | ▇▃▂▁▂ |
| lab_ALT_peak | 49 | 0.48 | 71.17 | 110.14 | 6.00 | 23.25 | 48.00 | 78.75 | 733.00 | ▇▁▁▁▁ |
| lab_ALT_NS | 90 | 0.05 | 71.20 | 11.56 | 52.00 | 69.00 | 76.00 | 79.00 | 80.00 | ▂▁▁▂▇ |
| lab_CK | 84 | 0.12 | 81.36 | 61.96 | 16.00 | 43.00 | 76.00 | 86.50 | 247.00 | ▇▆▂▁▂ |
| lab_LDH | 76 | 0.20 | 541.89 | 279.64 | 283.00 | 307.00 | 408.00 | 761.00 | 1059.00 | ▇▁▂▂▂ |
| lab_troponin_admis | 26 | 0.73 | 991.29 | 3442.01 | 0.00 | 47.00 | 140.00 | 470.00 | 27360.00 | ▇▁▁▁▁ |
| lab_troponin_max | 73 | 0.23 | 993.83 | 1564.33 | 4.00 | 132.00 | 387.00 | 932.90 | 6170.00 | ▇▂▁▁▁ |
| lab_NTproBNP | 71 | 0.25 | 8518.34 | 11115.95 | 72.44 | 782.00 | 2514.50 | 13273.25 | 35000.00 | ▇▂▁▁▁ |
| lab_BNP_admis | 57 | 0.40 | 4329.53 | 5458.54 | 0.00 | 408.50 | 2265.00 | 5847.50 | 19013.00 | ▇▁▁▁▁ |
| lab_BNP_max | 84 | 0.12 | 3689.04 | 5271.04 | 517.70 | 957.80 | 1718.60 | 3177.00 | 18606.50 | ▇▁▁▁▁ |
| lab_CRP_admis | 16 | 0.83 | 254.03 | 116.23 | 9.00 | 168.00 | 249.90 | 318.00 | 556.00 | ▂▇▇▂▂ |
| lab_CRP_NS | 84 | 0.12 | 287.04 | 131.78 | 7.40 | 227.50 | 328.00 | 369.50 | 456.00 | ▂▂▃▇▆ |
| lab_CRP_peak | 82 | 0.14 | 277.29 | 93.91 | 164.00 | 191.00 | 250.00 | 357.00 | 425.00 | ▇▃▂▅▃ |
| lab_PCT_admis | 40 | 0.58 | 46.54 | 88.86 | 0.11 | 5.78 | 15.20 | 41.39 | 448.00 | ▇▁▁▁▁ |
| lab_PCT_peak | 84 | 0.12 | 48.11 | 57.08 | 2.45 | 15.12 | 28.40 | 56.37 | 200.00 | ▇▂▁▁▁ |
| lab_PCT_NS | 88 | 0.07 | 31.51 | 39.75 | 0.13 | 3.50 | 14.80 | 49.30 | 100.00 | ▇▂▁▂▂ |
| lab_ESR | 75 | 0.21 | 70.20 | 26.66 | 11.00 | 55.50 | 65.00 | 86.00 | 118.00 | ▁▂▇▂▃ |
| lab_IL6 | 69 | 0.27 | 278.33 | 278.76 | 11.60 | 109.30 | 235.00 | 335.00 | 1449.00 | ▇▃▁▁▁ |
| lab_IL8 | 75 | 0.21 | 53.59 | 41.98 | 9.40 | 27.25 | 41.40 | 54.42 | 149.00 | ▇▇▁▁▃ |
| lab_TNF | 75 | 0.21 | 40.52 | 21.99 | 10.70 | 23.08 | 37.25 | 52.92 | 97.80 | ▇▂▅▂▁ |
| lab_IL1 | 75 | 0.21 | 0.62 | 0.51 | 0.00 | 0.30 | 0.40 | 0.90 | 1.60 | ▇▇▃▁▃ |
| lab_IL2 | 94 | 0.01 | 3157.00 | NA | 3157.00 | 3157.00 | 3157.00 | 3157.00 | 3157.00 | ▁▁▇▁▁ |
| admis_hosp_days | 68 | 0.28 | 9.19 | 3.62 | 2.00 | 7.00 | 8.00 | 12.00 | 17.00 | ▂▇▃▅▂ |
| admis_ICU_days | 71 | 0.25 | 5.25 | 2.94 | 0.00 | 3.75 | 4.00 | 8.00 | 11.00 | ▂▇▂▅▂ |
| lab_PELOD2 | 75 | 0.21 | 12.50 | 4.39 | 10.00 | 10.00 | 10.50 | 11.00 | 22.00 | ▇▁▁▁▂ |
| critcare_NIV_days | 93 | 0.02 | 3.00 | 2.83 | 1.00 | 2.00 | 3.00 | 4.00 | 5.00 | ▇▁▁▁▇ |
| critcare_MV_days | 93 | 0.02 | 4.50 | 0.71 | 4.00 | 4.25 | 4.50 | 4.75 | 5.00 | ▇▁▁▁▇ |
| critcare_inotrop_days | 91 | 0.04 | 4.38 | 3.90 | 1.50 | 1.88 | 3.00 | 5.50 | 10.00 | ▇▃▁▁▃ |
How to read
The sum column equals the sum of all individuals, e.g. sum(tot_cases_n) means that there are 592 patients in total in the cohorts; sum(outcome_death_n) means that 9 patients died.
The “Prct_total” column is the percentage of e.g. death (9/592). Only makes sense where n is reported e.g. therapy (not for lab values).
skimsum <- skim_with(numeric = sfl(sum = ~ sum(., na.rm = TRUE), Prct_total = ~ sum(., na.rm = TRUE)/sum(df_cohort$tot_cases_n)*100), append = TRUE)
skimsum(df_cohort)| Name | df_cohort |
| Number of rows | 15 |
| Number of columns | 341 |
| _______________________ | |
| Column type frequency: | |
| character | 8 |
| numeric | 333 |
| ________________________ | |
| Group variables | None |
Variable type: character
| skim_variable | n_missing | complete_rate | min | max | empty | n_unique | whitespace |
|---|---|---|---|---|---|---|---|
| doi | 0 | 1.0 | 21 | 49 | 0 | 12 | 0 |
| first_author | 0 | 1.0 | 13 | 19 | 0 | 12 | 0 |
| journal | 0 | 1.0 | 3 | 16 | 0 | 9 | 0 |
| cohort_id | 0 | 1.0 | 6 | 20 | 0 | 15 | 0 |
| cohort_type | 0 | 1.0 | 5 | 5 | 0 | 1 | 0 |
| prim_input | 0 | 1.0 | 2 | 2 | 0 | 1 | 0 |
| cross_check | 0 | 1.0 | 3 | 3 | 0 | 1 | 0 |
| notes | 6 | 0.6 | 4 | 51 | 0 | 9 | 0 |
Variable type: numeric
| skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist | sum | Prct_total |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| date_of_publication | 0 | 1.00 | 43995.80 | 12.66 | 43968.0 | 43990.00 | 43994.00 | 44009.00 | 44011.0 | ▂▃▆▅▇ | 659937.0 | 111475.84 |
| tot_cases_n | 0 | 1.00 | 39.47 | 42.80 | 7.0 | 19.00 | 33.00 | 38.50 | 186.0 | ▇▁▁▁▁ | 592.0 | 100.00 |
| sex_m | 0 | 1.00 | 23.13 | 26.91 | 4.0 | 10.00 | 18.00 | 20.00 | 115.0 | ▇▁▁▁▁ | 347.0 | 58.61 |
| sex_f | 0 | 1.00 | 16.33 | 16.47 | 3.0 | 8.50 | 12.00 | 18.50 | 71.0 | ▇▃▁▁▁ | 245.0 | 41.39 |
| age_med_yrs | 3 | 0.80 | 8.82 | 1.82 | 5.0 | 7.97 | 8.70 | 10.00 | 12.0 | ▁▁▇▂▂ | 105.9 | 17.89 |
| age_Q1_yrs | 8 | 0.47 | 5.49 | 2.39 | 2.0 | 4.40 | 5.70 | 6.20 | 9.5 | ▃▁▇▁▂ | 38.4 | 6.49 |
| age_Q3_yrs | 8 | 0.47 | 12.69 | 1.79 | 10.0 | 11.85 | 12.60 | 13.50 | 15.5 | ▂▂▇▂▂ | 88.8 | 15.00 |
| age_min_yrs | 10 | 0.33 | 1.66 | 1.44 | 0.0 | 0.60 | 1.80 | 2.20 | 3.7 | ▇▁▇▁▃ | 8.3 | 1.40 |
| age_max_yrs | 10 | 0.33 | 17.92 | 1.93 | 16.0 | 16.60 | 17.00 | 20.00 | 20.0 | ▇▃▁▁▇ | 89.6 | 15.14 |
| age_n_under1 | 13 | 0.13 | 6.50 | 9.19 | 0.0 | 3.25 | 6.50 | 9.75 | 13.0 | ▇▁▁▁▇ | 13.0 | 2.20 |
| age_n_1to4 | 14 | 0.07 | 53.00 | NA | 53.0 | 53.00 | 53.00 | 53.00 | 53.0 | ▁▁▇▁▁ | 53.0 | 8.95 |
| age_n_1to5 | 14 | 0.07 | 1.00 | NA | 1.0 | 1.00 | 1.00 | 1.00 | 1.0 | ▁▁▇▁▁ | 1.0 | 0.17 |
| age_n_5to9 | 14 | 0.07 | 46.00 | NA | 46.0 | 46.00 | 46.00 | 46.00 | 46.0 | ▁▁▇▁▁ | 46.0 | 7.77 |
| age_n_6to10 | 14 | 0.07 | 15.00 | NA | 15.0 | 15.00 | 15.00 | 15.00 | 15.0 | ▁▁▇▁▁ | 15.0 | 2.53 |
| age_n_10to14 | 14 | 0.07 | 45.00 | NA | 45.0 | 45.00 | 45.00 | 45.00 | 45.0 | ▁▁▇▁▁ | 45.0 | 7.60 |
| age_n_11to16 | 14 | 0.07 | 19.00 | NA | 19.0 | 19.00 | 19.00 | 19.00 | 19.0 | ▁▁▇▁▁ | 19.0 | 3.21 |
| age_n_0to5 | 13 | 0.13 | 17.50 | 19.09 | 4.0 | 10.75 | 17.50 | 24.25 | 31.0 | ▇▁▁▁▇ | 35.0 | 5.91 |
| age_n_6to12 | 14 | 0.07 | 42.00 | NA | 42.0 | 42.00 | 42.00 | 42.00 | 42.0 | ▁▁▇▁▁ | 42.0 | 7.09 |
| age_n_13to20 | 13 | 0.13 | 35.50 | 13.44 | 26.0 | 30.75 | 35.50 | 40.25 | 45.0 | ▇▁▁▁▇ | 71.0 | 11.99 |
| age_n_15to20 | 14 | 0.07 | 29.00 | NA | 29.0 | 29.00 | 29.00 | 29.00 | 29.0 | ▁▁▇▁▁ | 29.0 | 4.90 |
| race_n_white | 4 | 0.73 | 11.82 | 9.16 | 0.0 | 7.50 | 12.00 | 12.50 | 35.0 | ▃▇▁▁▁ | 130.0 | 21.96 |
| race_n_black | 4 | 0.73 | 14.82 | 12.15 | 4.0 | 7.00 | 12.00 | 17.50 | 46.0 | ▇▂▂▁▁ | 163.0 | 27.53 |
| race_n_asian | 6 | 0.60 | 4.11 | 5.51 | 0.0 | 1.00 | 2.00 | 4.00 | 18.0 | ▇▂▁▁▁ | 37.0 | 6.25 |
| race_n_other | 5 | 0.67 | 7.60 | 7.66 | 1.0 | 3.00 | 5.00 | 8.50 | 26.0 | ▇▂▁▁▁ | 76.0 | 12.84 |
| race_n_unknown | 13 | 0.13 | 22.50 | 26.16 | 4.0 | 13.25 | 22.50 | 31.75 | 41.0 | ▇▁▁▁▇ | 45.0 | 7.60 |
| ethn_n_hisp | 13 | 0.13 | 33.00 | 33.94 | 9.0 | 21.00 | 33.00 | 45.00 | 57.0 | ▇▁▁▁▇ | 66.0 | 11.15 |
| eth_n_nonhisp | 14 | 0.07 | 24.00 | NA | 24.0 | 24.00 | 24.00 | 24.00 | 24.0 | ▁▁▇▁▁ | 24.0 | 4.05 |
| weight_med_kg | 14 | 0.07 | 33.40 | NA | 33.4 | 33.40 | 33.40 | 33.40 | 33.4 | ▁▁▇▁▁ | 33.4 | 5.64 |
| bmi_med | 13 | 0.13 | 18.02 | 0.83 | 17.4 | 17.72 | 18.02 | 18.31 | 18.6 | ▇▁▁▁▇ | 36.0 | 6.09 |
| bmi_Q1 | 14 | 0.07 | 15.90 | NA | 15.9 | 15.90 | 15.90 | 15.90 | 15.9 | ▁▁▇▁▁ | 15.9 | 2.69 |
| bmi_Q3 | 14 | 0.07 | 22.90 | NA | 22.9 | 22.90 | 22.90 | 22.90 | 22.9 | ▁▁▇▁▁ | 22.9 | 3.87 |
| n_overweight | 5 | 0.67 | 11.90 | 12.47 | 2.0 | 6.00 | 9.00 | 12.50 | 45.0 | ▇▃▁▁▁ | 119.0 | 20.10 |
| comorb_n_cardiovasc | 12 | 0.20 | 2.33 | 2.52 | 0.0 | 1.00 | 2.00 | 3.50 | 5.0 | ▇▇▁▁▇ | 7.0 | 1.18 |
| comorb_n_resp | 14 | 0.07 | 33.00 | NA | 33.0 | 33.00 | 33.00 | 33.00 | 33.0 | ▁▁▇▁▁ | 33.0 | 5.57 |
| comorb_n_astma | 8 | 0.47 | 3.00 | 1.73 | 0.0 | 2.50 | 3.00 | 4.00 | 5.0 | ▂▂▇▁▅ | 21.0 | 3.55 |
| comorb_n_chronlungdz | 12 | 0.20 | 4.67 | 2.52 | 2.0 | 3.50 | 5.00 | 6.00 | 7.0 | ▇▁▇▁▇ | 14.0 | 2.36 |
| comorb_n_immunodef | 14 | 0.07 | 10.00 | NA | 10.0 | 10.00 | 10.00 | 10.00 | 10.0 | ▁▁▇▁▁ | 10.0 | 1.69 |
| comorb_n_NS | 14 | 0.07 | 3.00 | NA | 3.0 | 3.00 | 3.00 | 3.00 | 3.0 | ▁▁▇▁▁ | 3.0 | 0.51 |
| comorb_n_lupus | 14 | 0.07 | 1.00 | NA | 1.0 | 1.00 | 1.00 | 1.00 | 1.0 | ▁▁▇▁▁ | 1.0 | 0.17 |
| comorb_n_neurodis | 14 | 0.07 | 1.00 | NA | 1.0 | 1.00 | 1.00 | 1.00 | 1.0 | ▁▁▇▁▁ | 1.0 | 0.17 |
| comorb_n_sickle | 14 | 0.07 | 1.00 | NA | 1.0 | 1.00 | 1.00 | 1.00 | 1.0 | ▁▁▇▁▁ | 1.0 | 0.17 |
| comorb_n_alopecia | 14 | 0.07 | 1.00 | NA | 1.0 | 1.00 | 1.00 | 1.00 | 1.0 | ▁▁▇▁▁ | 1.0 | 0.17 |
| covid_n_closecontact | 7 | 0.53 | 14.00 | 16.87 | 3.0 | 6.00 | 9.00 | 11.50 | 55.0 | ▇▁▁▁▁ | 112.0 | 18.92 |
| covid_n_PCR_pos | 0 | 1.00 | 14.20 | 17.15 | 1.0 | 6.50 | 11.00 | 15.00 | 73.0 | ▇▁▁▁▁ | 213.0 | 35.98 |
| covid_n_PCR_neg | 2 | 0.87 | 25.69 | 27.29 | 2.0 | 10.00 | 22.00 | 25.00 | 108.0 | ▇▃▁▁▁ | 334.0 | 56.42 |
| covid_n_PCR_stool_pos | 10 | 0.33 | 0.80 | 0.84 | 0.0 | 0.00 | 1.00 | 1.00 | 2.0 | ▇▁▇▁▃ | 4.0 | 0.68 |
| covid_n_PCR_stool_neg | 10 | 0.33 | 10.60 | 13.28 | 0.0 | 3.00 | 5.00 | 12.00 | 33.0 | ▇▂▁▁▂ | 53.0 | 8.95 |
| covid_n_sero_pos | 10 | 0.33 | 32.80 | 30.66 | 9.0 | 12.00 | 27.00 | 31.00 | 85.0 | ▇▇▁▁▃ | 164.0 | 27.70 |
| covid_n_sero_neg | 10 | 0.33 | 11.80 | 19.42 | 0.0 | 0.00 | 5.00 | 8.00 | 46.0 | ▇▁▁▁▂ | 59.0 | 9.97 |
| covid_n_sero_any | 14 | 0.07 | 30.00 | NA | 30.0 | 30.00 | 30.00 | 30.00 | 30.0 | ▁▁▇▁▁ | 30.0 | 5.07 |
| covid_n_IgA_pos | 14 | 0.07 | 25.00 | NA | 25.0 | 25.00 | 25.00 | 25.00 | 25.0 | ▁▁▇▁▁ | 25.0 | 4.22 |
| covid_n_IgA_neg | 14 | 0.07 | 10.00 | NA | 10.0 | 10.00 | 10.00 | 10.00 | 10.0 | ▁▁▇▁▁ | 10.0 | 1.69 |
| covid_n_IgM_pos | 13 | 0.13 | 12.50 | 14.85 | 2.0 | 7.25 | 12.50 | 17.75 | 23.0 | ▇▁▁▁▇ | 25.0 | 4.22 |
| covid_n_IgM_neg | 13 | 0.13 | 30.00 | 4.24 | 27.0 | 28.50 | 30.00 | 31.50 | 33.0 | ▇▁▁▁▇ | 60.0 | 10.14 |
| covid_n_IgG_pos | 5 | 0.67 | 22.50 | 11.83 | 3.0 | 19.00 | 24.50 | 29.50 | 40.0 | ▃▁▇▃▃ | 225.0 | 38.01 |
| covid_n_IgG_neg | 5 | 0.67 | 4.30 | 8.38 | 0.0 | 0.00 | 1.00 | 4.75 | 27.0 | ▇▂▁▁▁ | 43.0 | 7.26 |
| symp_fever_n | 1 | 0.93 | 40.50 | 44.15 | 7.0 | 19.25 | 32.00 | 40.25 | 186.0 | ▇▂▁▁▁ | 567.0 | 95.78 |
| symp_fever_days_min | 13 | 0.13 | 2.00 | 1.41 | 1.0 | 1.50 | 2.00 | 2.50 | 3.0 | ▇▁▁▁▇ | 4.0 | 0.68 |
| symp_fever_days_med | 10 | 0.33 | 6.60 | 1.82 | 5.0 | 5.00 | 6.00 | 8.00 | 9.0 | ▇▃▁▃▃ | 33.0 | 5.57 |
| symp_fever_days_max | 13 | 0.13 | 15.50 | 4.95 | 12.0 | 13.75 | 15.50 | 17.25 | 19.0 | ▇▁▁▁▇ | 31.0 | 5.24 |
| symp_fever_days_Q1 | 12 | 0.20 | 7.33 | 2.08 | 5.0 | 6.50 | 8.00 | 8.50 | 9.0 | ▇▁▁▇▇ | 22.0 | 3.72 |
| symp_fever_days_Q3 | 12 | 0.20 | 10.67 | 2.31 | 8.0 | 10.00 | 12.00 | 12.00 | 12.0 | ▃▁▁▁▇ | 32.0 | 5.41 |
| symp_resp_any_n | 7 | 0.53 | 25.38 | 43.33 | 1.0 | 5.50 | 11.50 | 18.50 | 131.0 | ▇▁▁▁▁ | 203.0 | 34.29 |
| symp_resp_URT_n | 10 | 0.33 | 9.60 | 3.91 | 6.0 | 6.00 | 9.00 | 12.00 | 15.0 | ▇▃▁▃▃ | 48.0 | 8.11 |
| symp_resp_dyspnea_n | 10 | 0.33 | 10.60 | 7.30 | 5.0 | 6.00 | 8.00 | 11.00 | 23.0 | ▇▂▁▁▂ | 53.0 | 8.95 |
| symp_resp_pneumonia_n | 11 | 0.27 | 10.25 | 4.99 | 3.0 | 9.00 | 12.00 | 13.25 | 14.0 | ▃▁▁▃▇ | 41.0 | 6.93 |
| symp_resp_chestpain_n | 11 | 0.27 | 4.25 | 2.75 | 1.0 | 2.50 | 4.50 | 6.25 | 7.0 | ▃▃▁▁▇ | 17.0 | 2.87 |
| symp_resp_failure_n | 9 | 0.40 | 22.17 | 42.99 | 0.0 | 1.50 | 3.00 | 13.50 | 109.0 | ▇▁▁▁▂ | 133.0 | 22.47 |
| symp_GI_any_n | 2 | 0.87 | 33.85 | 42.42 | 6.0 | 15.00 | 23.00 | 32.00 | 171.0 | ▇▁▁▁▁ | 440.0 | 74.32 |
| symp_GI_abdopain_n | 9 | 0.40 | 24.17 | 8.01 | 13.0 | 18.75 | 25.00 | 30.50 | 33.0 | ▃▇▁▃▇ | 145.0 | 24.49 |
| symp_GI_vomiting_n | 8 | 0.47 | 21.57 | 4.28 | 16.0 | 18.00 | 23.00 | 25.00 | 26.0 | ▅▂▁▂▇ | 151.0 | 25.51 |
| symp_GI_diarrh_n | 8 | 0.47 | 19.00 | 6.06 | 13.0 | 14.50 | 18.00 | 21.50 | 30.0 | ▇▂▅▁▂ | 133.0 | 22.47 |
| symp_GI_colitis_n | 14 | 0.07 | 3.00 | NA | 3.0 | 3.00 | 3.00 | 3.00 | 3.0 | ▁▁▇▁▁ | 3.0 | 0.51 |
| symp_neuro_any_n | 4 | 0.73 | 9.64 | 5.16 | 4.0 | 4.50 | 10.00 | 12.50 | 19.0 | ▇▃▆▂▂ | 106.0 | 17.91 |
| symp_neuro_encefalo_n | 14 | 0.07 | 4.00 | NA | 4.0 | 4.00 | 4.00 | 4.00 | 4.0 | ▁▁▇▁▁ | 4.0 | 0.68 |
| symp_neuro_asthenia_n | 10 | 0.33 | 8.20 | 15.06 | 0.0 | 1.00 | 1.00 | 4.00 | 35.0 | ▇▁▁▁▂ | 41.0 | 6.93 |
| symp_neuro_headache_n | 11 | 0.27 | 11.00 | 5.23 | 4.0 | 8.50 | 12.50 | 15.00 | 15.0 | ▃▁▃▁▇ | 44.0 | 7.43 |
| symp_neuro_irritab_n | 14 | 0.07 | 12.00 | NA | 12.0 | 12.00 | 12.00 | 12.00 | 12.0 | ▁▁▇▁▁ | 12.0 | 2.03 |
| symp_dermato_any_n | 12 | 0.20 | 20.33 | 7.23 | 12.0 | 18.00 | 24.00 | 24.50 | 25.0 | ▃▁▁▁▇ | 61.0 | 10.30 |
| symp_renal_any_n | 14 | 0.07 | 15.00 | NA | 15.0 | 15.00 | 15.00 | 15.00 | 15.0 | ▁▁▇▁▁ | 15.0 | 2.53 |
| symp_renal_AKI_n | 8 | 0.47 | 9.00 | 7.23 | 3.0 | 3.50 | 7.00 | 11.50 | 23.0 | ▇▂▂▁▂ | 63.0 | 10.64 |
| symp_cardiovasc_any_n | 13 | 0.13 | 85.50 | 89.80 | 22.0 | 53.75 | 85.50 | 117.25 | 149.0 | ▇▁▁▁▇ | 171.0 | 28.89 |
| symp_cardiovasc_myocard_n | 8 | 0.47 | 12.86 | 7.15 | 1.0 | 9.00 | 15.00 | 17.50 | 21.0 | ▃▃▃▇▇ | 90.0 | 15.20 |
| symp_cardiovasc_pericard_n | 7 | 0.53 | 9.25 | 8.14 | 1.0 | 3.00 | 8.00 | 11.25 | 26.0 | ▇▇▂▁▂ | 74.0 | 12.50 |
| symp_cardiovasc_cordilat_n | 5 | 0.67 | 5.20 | 4.29 | 0.0 | 2.25 | 5.50 | 6.00 | 15.0 | ▇▇▂▁▂ | 52.0 | 8.78 |
| symp_cardiovasc_aneurysm_n | 6 | 0.60 | 2.67 | 2.74 | 0.0 | 1.00 | 1.00 | 4.00 | 8.0 | ▇▁▃▂▂ | 24.0 | 4.05 |
| symp_cardiovasc_LV_less30_n | 8 | 0.47 | 3.71 | 4.19 | 0.0 | 0.50 | 2.00 | 6.50 | 10.0 | ▇▂▁▁▃ | 26.0 | 4.39 |
| symp_cardiovasc_LV_30to55_n | 9 | 0.40 | 23.67 | 19.17 | 9.0 | 12.50 | 18.00 | 23.50 | 61.0 | ▇▂▁▁▂ | 142.0 | 23.99 |
| symp_cardiovasc_LVEF_med | 10 | 0.33 | 44.72 | 6.95 | 34.0 | 42.00 | 46.60 | 50.00 | 51.0 | ▃▁▃▃▇ | 223.6 | 37.77 |
| symp_cardiovasc_LVEF_Q1 | 14 | 0.07 | 39.50 | NA | 39.5 | 39.50 | 39.50 | 39.50 | 39.5 | ▁▁▇▁▁ | 39.5 | 6.67 |
| symp_cardiovasc_LVEF_Q3 | 14 | 0.07 | 52.80 | NA | 52.8 | 52.80 | 52.80 | 52.80 | 52.8 | ▁▁▇▁▁ | 52.8 | 8.92 |
| symp_cardiovasc_LVEF_min | 13 | 0.13 | 6.50 | 4.95 | 3.0 | 4.75 | 6.50 | 8.25 | 10.0 | ▇▁▁▁▇ | 13.0 | 2.20 |
| symp_cardiovasc_LVEF_max | 13 | 0.13 | 50.00 | 9.90 | 43.0 | 46.50 | 50.00 | 53.50 | 57.0 | ▇▁▁▁▇ | 100.0 | 16.89 |
| symp_cardiovasc_shock_n | 2 | 0.87 | 14.62 | 10.06 | 1.0 | 5.00 | 13.00 | 22.00 | 29.0 | ▇▃▂▆▆ | 190.0 | 32.09 |
| symp_cardiovasc_tachycard_n | 10 | 0.33 | 21.40 | 15.81 | 4.0 | 7.00 | 26.00 | 28.00 | 42.0 | ▇▁▃▃▃ | 107.0 | 18.07 |
| symp_cardiovasc_arrhyt_n | 11 | 0.27 | 7.50 | 9.75 | 1.0 | 2.50 | 3.50 | 8.50 | 22.0 | ▇▁▁▁▂ | 30.0 | 5.07 |
| symp_cardiovasc_thrombo_n | 13 | 0.13 | 0.00 | 0.00 | 0.0 | 0.00 | 0.00 | 0.00 | 0.0 | ▁▁▇▁▁ | 0.0 | 0.00 |
| kawasaki_complete_n | 7 | 0.53 | 11.88 | 12.21 | 0.0 | 5.50 | 7.50 | 13.50 | 38.0 | ▇▃▂▁▂ | 95.0 | 16.05 |
| kawasaki_incomplete_n | 11 | 0.27 | 14.75 | 14.31 | 5.0 | 7.25 | 9.00 | 16.50 | 36.0 | ▇▁▁▁▂ | 59.0 | 9.97 |
| kawasaki_comp_or_incomp_n | 11 | 0.27 | 27.50 | 31.67 | 3.0 | 12.00 | 16.50 | 32.00 | 74.0 | ▇▃▁▁▃ | 110.0 | 18.58 |
| kawasaki_fever_n | 11 | 0.27 | 45.50 | 58.41 | 7.0 | 8.50 | 22.00 | 59.00 | 131.0 | ▇▃▁▁▃ | 182.0 | 30.74 |
| kawasaki_exanthema_n | 2 | 0.87 | 24.46 | 26.94 | 6.0 | 12.00 | 16.00 | 25.00 | 110.0 | ▇▂▁▁▁ | 318.0 | 53.72 |
| kawasaki_mouth_n | 3 | 0.80 | 17.50 | 19.95 | 4.0 | 7.75 | 12.00 | 17.50 | 78.0 | ▇▂▁▁▁ | 210.0 | 35.47 |
| kawasaki_extremity_n | 6 | 0.60 | 12.33 | 21.46 | 1.0 | 3.00 | 6.00 | 9.00 | 69.0 | ▇▁▁▁▁ | 111.0 | 18.75 |
| kawasaki_cervical_n | 5 | 0.67 | 7.80 | 7.11 | 0.0 | 3.00 | 5.00 | 11.25 | 21.0 | ▇▂▃▁▃ | 78.0 | 13.18 |
| kawasaki_conjunctivitis_n | 2 | 0.87 | 23.23 | 25.17 | 6.0 | 11.00 | 17.00 | 23.00 | 103.0 | ▇▂▁▁▁ | 302.0 | 51.01 |
| symp_effusion_n | 13 | 0.13 | 8.50 | 4.95 | 5.0 | 6.75 | 8.50 | 10.25 | 12.0 | ▇▁▁▁▇ | 17.0 | 2.87 |
| symp_arthritis_n | 12 | 0.20 | 1.67 | 2.08 | 0.0 | 0.50 | 1.00 | 2.50 | 4.0 | ▇▇▁▁▇ | 5.0 | 0.84 |
| symp_mas | 13 | 0.13 | 0.00 | 0.00 | 0.0 | 0.00 | 0.00 | 0.00 | 0.0 | ▁▁▇▁▁ | 0.0 | 0.00 |
| lab_Hb_NS_n | 10 | 0.33 | 37.80 | 13.92 | 21.0 | 33.00 | 33.00 | 44.00 | 58.0 | ▃▇▁▃▃ | 189.0 | 31.93 |
| lab_Hb_NS_med | 10 | 0.33 | 10.30 | 1.30 | 8.6 | 9.20 | 11.20 | 11.20 | 11.3 | ▂▂▁▁▇ | 51.5 | 8.70 |
| lab_Hb_NS_Q1 | 12 | 0.20 | 9.45 | 1.10 | 8.3 | 8.93 | 9.55 | 10.03 | 10.5 | ▇▁▇▁▇ | 28.4 | 4.79 |
| lab_Hb_NS_Q3 | 12 | 0.20 | 11.60 | 1.15 | 10.3 | 11.15 | 12.00 | 12.25 | 12.5 | ▇▁▁▇▇ | 34.8 | 5.88 |
| lab_Hb_baseline_n | 14 | 0.07 | 17.00 | NA | 17.0 | 17.00 | 17.00 | 17.00 | 17.0 | ▁▁▇▁▁ | 17.0 | 2.87 |
| lab_Hb_baseline_med | 14 | 0.07 | 11.20 | NA | 11.2 | 11.20 | 11.20 | 11.20 | 11.2 | ▁▁▇▁▁ | 11.2 | 1.89 |
| lab_WBC_NS_n | 6 | 0.60 | 30.56 | 16.19 | 7.0 | 21.00 | 33.00 | 35.00 | 58.0 | ▃▂▇▂▂ | 275.0 | 46.45 |
| lab_WBC_NS_med | 3 | 0.80 | 12151.67 | 3022.43 | 9100.0 | 9695.00 | 11100.00 | 13525.00 | 17400.0 | ▇▇▂▁▆ | 145820.0 | 24631.76 |
| lab_WBC_NS_Q1 | 5 | 0.67 | 9334.00 | 2129.50 | 6400.0 | 7550.00 | 9075.00 | 11400.00 | 12000.0 | ▇▅▂▂▇ | 93340.0 | 15766.89 |
| lab_WBC_NS_Q3 | 5 | 0.67 | 17333.00 | 5852.26 | 11900.0 | 13775.00 | 14600.00 | 20800.00 | 30000.0 | ▇▁▁▁▁ | 173330.0 | 29278.72 |
| lab_WBC_baseline_n | 14 | 0.07 | 17.00 | NA | 17.0 | 17.00 | 17.00 | 17.00 | 17.0 | ▁▁▇▁▁ | 17.0 | 2.87 |
| lab_WBC_baseline_med | 14 | 0.07 | 14000.00 | NA | 14000.0 | 14000.00 | 14000.00 | 14000.00 | 14000.0 | ▁▁▇▁▁ | 14000.0 | 2364.86 |
| lab_neutro_NS_n | 9 | 0.40 | 27.33 | 19.15 | 7.0 | 12.00 | 27.50 | 34.75 | 58.0 | ▇▃▇▁▃ | 164.0 | 27.70 |
| lab_neutro_NS_med | 9 | 0.40 | 11333.33 | 2211.49 | 8000.0 | 10100.00 | 11700.00 | 13000.00 | 13600.0 | ▂▂▂▁▇ | 68000.0 | 11486.49 |
| lab_neutro_NS_Q1 | 10 | 0.33 | 8520.00 | 1425.48 | 6400.0 | 8000.00 | 8600.00 | 9600.00 | 10000.0 | ▃▁▃▃▇ | 42600.0 | 7195.95 |
| lab_neutro_NS_Q3 | 10 | 0.33 | 14260.00 | 4497.55 | 9600.0 | 10700.00 | 13000.00 | 19000.00 | 19000.0 | ▇▃▁▁▇ | 71300.0 | 12043.92 |
| lab_lympho_NS_n | 8 | 0.47 | 28.00 | 17.56 | 7.0 | 15.00 | 33.00 | 34.00 | 58.0 | ▅▂▇▁▂ | 196.0 | 33.11 |
| lab_lympho_NS_med | 8 | 0.47 | 1047.14 | 273.66 | 800.0 | 865.00 | 1000.00 | 1100.00 | 1600.0 | ▇▇▁▁▂ | 7330.0 | 1238.18 |
| lab_lympho_NS_Q1 | 9 | 0.40 | 676.67 | 195.82 | 490.0 | 525.00 | 635.00 | 767.50 | 1000.0 | ▇▇▁▃▃ | 4060.0 | 685.81 |
| lab_lympho_NS_Q3 | 9 | 0.40 | 1390.00 | 199.10 | 1120.0 | 1300.00 | 1360.00 | 1480.00 | 1700.0 | ▃▇▃▃▃ | 8340.0 | 1408.78 |
| lab_lympho_baseline_n | 14 | 0.07 | 17.00 | NA | 17.0 | 17.00 | 17.00 | 17.00 | 17.0 | ▁▁▇▁▁ | 17.0 | 2.87 |
| lab_lympho_baseline_med | 14 | 0.07 | 1212.10 | NA | 1212.1 | 1212.10 | 1212.10 | 1212.10 | 1212.1 | ▁▁▇▁▁ | 1212.1 | 204.75 |
| lab_platelet_NS_n | 4 | 0.73 | 30.45 | 14.79 | 7.0 | 23.50 | 33.00 | 37.50 | 58.0 | ▃▃▇▃▂ | 335.0 | 56.59 |
| lab_platelet_NS_med | 4 | 0.73 | 199000.00 | 101826.32 | 125000.0 | 157000.00 | 176000.00 | 189500.00 | 499000.0 | ▇▁▁▁▁ | 2189000.0 | 369763.51 |
| lab_platelet_NS_Q1 | 6 | 0.60 | 124055.56 | 22705.24 | 100000.0 | 104000.00 | 130000.00 | 135000.00 | 170000.0 | ▇▁▇▁▂ | 1116500.0 | 188597.97 |
| lab_platelet_NS_Q3 | 6 | 0.60 | 234333.33 | 33797.19 | 200000.0 | 210000.00 | 224000.00 | 240000.00 | 297000.0 | ▇▇▂▁▅ | 2109000.0 | 356250.00 |
| lab_platelet_baseline_n | 14 | 0.07 | 17.00 | NA | 17.0 | 17.00 | 17.00 | 17.00 | 17.0 | ▁▁▇▁▁ | 17.0 | 2.87 |
| lab_platelet_baseline_med | 14 | 0.07 | 237000.00 | NA | 237000.0 | 237000.00 | 237000.00 | 237000.00 | 237000.0 | ▁▁▇▁▁ | 237000.0 | 40033.78 |
| lab_platelet_lowest_n | 14 | 0.07 | 185.00 | NA | 185.0 | 185.00 | 185.00 | 185.00 | 185.0 | ▁▁▇▁▁ | 185.0 | 31.25 |
| lab_platelet_lowest_med | 14 | 0.07 | 133000.00 | NA | 133000.0 | 133000.00 | 133000.00 | 133000.00 | 133000.0 | ▁▁▇▁▁ | 133000.0 | 22466.22 |
| lab_platelet_lowest_Q1 | 14 | 0.07 | 88000.00 | NA | 88000.0 | 88000.00 | 88000.00 | 88000.00 | 88000.0 | ▁▁▇▁▁ | 88000.0 | 14864.86 |
| lab_platelet_lowest_Q3 | 14 | 0.07 | 235000.00 | NA | 235000.0 | 235000.00 | 235000.00 | 235000.00 | 235000.0 | ▁▁▇▁▁ | 235000.0 | 39695.95 |
| lab_sodium_NS_n | 10 | 0.33 | 20.60 | 12.52 | 7.0 | 9.00 | 21.00 | 33.00 | 33.0 | ▇▁▃▁▇ | 103.0 | 17.40 |
| lab_sodium_NS_med | 10 | 0.33 | 131.20 | 3.42 | 127.0 | 130.00 | 130.00 | 133.00 | 136.0 | ▃▇▁▃▃ | 656.0 | 110.81 |
| lab_sodium_NS_Q1 | 11 | 0.27 | 130.50 | 3.42 | 127.0 | 128.50 | 130.00 | 132.00 | 135.0 | ▇▇▇▁▇ | 522.0 | 88.18 |
| lab_sodium_NS_Q3 | 11 | 0.27 | 135.50 | 2.89 | 132.0 | 134.25 | 135.50 | 136.75 | 139.0 | ▃▁▇▁▃ | 542.0 | 91.55 |
| lab_sodium_baseline_n | 14 | 0.07 | 17.00 | NA | 17.0 | 17.00 | 17.00 | 17.00 | 17.0 | ▁▁▇▁▁ | 17.0 | 2.87 |
| lab_sodium_baseline_med | 14 | 0.07 | 133.10 | NA | 133.1 | 133.10 | 133.10 | 133.10 | 133.1 | ▁▁▇▁▁ | 133.1 | 22.48 |
| lab_ferritin_NS_n | 6 | 0.60 | 28.67 | 15.42 | 7.0 | 23.00 | 33.00 | 35.00 | 58.0 | ▃▃▇▁▂ | 258.0 | 43.58 |
| lab_ferritin_NS_med | 6 | 0.60 | 674.33 | 423.04 | 295.0 | 540.00 | 610.00 | 631.00 | 1760.0 | ▇▇▁▁▂ | 6069.0 | 1025.17 |
| lab_ferritin_NS_Q1 | 6 | 0.60 | 446.44 | 472.82 | 165.0 | 293.00 | 313.00 | 359.00 | 1693.0 | ▇▁▁▁▁ | 4018.0 | 678.72 |
| lab_ferritin_NS_Q3 | 6 | 0.60 | 1110.56 | 568.27 | 536.0 | 880.00 | 954.00 | 1192.00 | 2500.0 | ▅▇▁▁▂ | 9995.0 | 1688.34 |
| lab_ferritin_baseline_n | 14 | 0.07 | 17.00 | NA | 17.0 | 17.00 | 17.00 | 17.00 | 17.0 | ▁▁▇▁▁ | 17.0 | 2.87 |
| lab_ferritin_baseline_med | 14 | 0.07 | 647.90 | NA | 647.9 | 647.90 | 647.90 | 647.90 | 647.9 | ▁▁▇▁▁ | 647.9 | 109.44 |
| lab_ferritin_peak_n | 13 | 0.13 | 89.00 | 104.65 | 15.0 | 52.00 | 89.00 | 126.00 | 163.0 | ▇▁▁▁▇ | 178.0 | 30.07 |
| lab_ferritin_peak_med | 13 | 0.13 | 598.50 | 57.28 | 558.0 | 578.25 | 598.50 | 618.75 | 639.0 | ▇▁▁▁▇ | 1197.0 | 202.20 |
| lab_ferritin_peak_Q1 | 13 | 0.13 | 348.35 | 22.13 | 332.7 | 340.52 | 348.35 | 356.18 | 364.0 | ▇▁▁▁▇ | 696.7 | 117.69 |
| lab_ferritin_peak_Q3 | 13 | 0.13 | 1251.60 | 103.80 | 1178.2 | 1214.90 | 1251.60 | 1288.30 | 1325.0 | ▇▁▁▁▇ | 2503.2 | 422.84 |
| lab_ALT_NS_n | 10 | 0.33 | 37.80 | 13.92 | 21.0 | 33.00 | 33.00 | 44.00 | 58.0 | ▃▇▁▃▃ | 189.0 | 31.93 |
| lab_ALT_NS_median | 10 | 0.33 | 42.10 | 16.90 | 24.5 | 36.00 | 38.00 | 42.00 | 70.0 | ▂▇▁▁▂ | 210.5 | 35.56 |
| lab_ALT_NS_Q1 | 12 | 0.20 | 28.00 | 2.00 | 26.0 | 27.00 | 28.00 | 29.00 | 30.0 | ▇▁▇▁▇ | 84.0 | 14.19 |
| lab_ALT_NS_Q3 | 12 | 0.20 | 70.67 | 21.78 | 53.0 | 58.50 | 64.00 | 79.50 | 95.0 | ▇▇▁▁▇ | 212.0 | 35.81 |
| lab_ALT_baseline_n | 14 | 0.07 | 17.00 | NA | 17.0 | 17.00 | 17.00 | 17.00 | 17.0 | ▁▁▇▁▁ | 17.0 | 2.87 |
| lab_ALT_baseline_med | 14 | 0.07 | 49.60 | NA | 49.6 | 49.60 | 49.60 | 49.60 | 49.6 | ▁▁▇▁▁ | 49.6 | 8.38 |
| lab_AST_NS_n | 12 | 0.20 | 36.67 | 6.35 | 33.0 | 33.00 | 33.00 | 38.50 | 44.0 | ▇▁▁▁▃ | 110.0 | 18.58 |
| lab_AST_NS_med | 12 | 0.20 | 44.33 | 11.93 | 31.0 | 39.50 | 48.00 | 51.00 | 54.0 | ▇▁▁▇▇ | 133.0 | 22.47 |
| lab_AST_NS_Q1 | 13 | 0.13 | 31.50 | 6.36 | 27.0 | 29.25 | 31.50 | 33.75 | 36.0 | ▇▁▁▁▇ | 63.0 | 10.64 |
| lab_AST_NS_Q3 | 13 | 0.13 | 72.50 | 4.95 | 69.0 | 70.75 | 72.50 | 74.25 | 76.0 | ▇▁▁▁▇ | 145.0 | 24.49 |
| lab_AST_baseline_n | 14 | 0.07 | 17.00 | NA | 17.0 | 17.00 | 17.00 | 17.00 | 17.0 | ▁▁▇▁▁ | 17.0 | 2.87 |
| lab_AST_baseline_med | 14 | 0.07 | 51.50 | NA | 51.5 | 51.50 | 51.50 | 51.50 | 51.5 | ▁▁▇▁▁ | 51.5 | 8.70 |
| lab_albumin_NS_n | 5 | 0.67 | 29.90 | 15.66 | 7.0 | 21.75 | 31.00 | 39.00 | 58.0 | ▅▅▇▅▂ | 299.0 | 50.51 |
| lab_albumin_NS_med | 5 | 0.67 | 28.55 | 6.57 | 18.5 | 22.50 | 31.00 | 33.50 | 37.0 | ▇▂▁▇▇ | 285.5 | 48.23 |
| lab_albumin_NS_Q1 | 7 | 0.53 | 24.12 | 3.68 | 18.0 | 21.75 | 25.00 | 26.00 | 30.0 | ▃▇▇▇▃ | 193.0 | 32.60 |
| lab_albumin_NS_Q3 | 7 | 0.53 | 32.00 | 7.25 | 20.0 | 26.25 | 35.50 | 37.25 | 39.0 | ▂▃▁▂▇ | 256.0 | 43.24 |
| lab_albumin_low_n | 14 | 0.07 | 178.00 | NA | 178.0 | 178.00 | 178.00 | 178.00 | 178.0 | ▁▁▇▁▁ | 178.0 | 30.07 |
| lab_albumin_low_med | 14 | 0.07 | 25.00 | NA | 25.0 | 25.00 | 25.00 | 25.00 | 25.0 | ▁▁▇▁▁ | 25.0 | 4.22 |
| lab_albumin_low_Q1 | 14 | 0.07 | 20.00 | NA | 20.0 | 20.00 | 20.00 | 20.00 | 20.0 | ▁▁▇▁▁ | 20.0 | 3.38 |
| lab_albumin_low_Q3 | 14 | 0.07 | 29.00 | NA | 29.0 | 29.00 | 29.00 | 29.00 | 29.0 | ▁▁▇▁▁ | 29.0 | 4.90 |
| lab_LDH_baseline_n | 13 | 0.13 | 18.00 | 1.41 | 17.0 | 17.50 | 18.00 | 18.50 | 19.0 | ▇▁▁▁▇ | 36.0 | 6.08 |
| lab_LDH_baseline_med | 13 | 0.13 | 254.90 | 152.59 | 147.0 | 200.95 | 254.90 | 308.85 | 362.8 | ▇▁▁▁▇ | 509.8 | 86.11 |
| lab_LDH_baseline_Q1 | 14 | 0.07 | 110.00 | NA | 110.0 | 110.00 | 110.00 | 110.00 | 110.0 | ▁▁▇▁▁ | 110.0 | 18.58 |
| lab_LDH_baseline_Q3 | 14 | 0.07 | 510.00 | NA | 510.0 | 510.00 | 510.00 | 510.00 | 510.0 | ▁▁▇▁▁ | 510.0 | 86.15 |
| lab_LDH_NS_n | 11 | 0.27 | 25.50 | 7.55 | 19.0 | 19.00 | 25.00 | 31.50 | 33.0 | ▇▁▁▁▇ | 102.0 | 17.23 |
| lab_LDH_NS_med | 11 | 0.27 | 315.25 | 18.46 | 288.0 | 312.00 | 322.50 | 325.75 | 328.0 | ▃▁▁▃▇ | 1261.0 | 213.01 |
| lab_LDH_NS_Q1 | 11 | 0.27 | 268.75 | 11.79 | 256.0 | 261.25 | 268.00 | 275.50 | 283.0 | ▇▇▁▇▇ | 1075.0 | 181.59 |
| lab_LDH_NS_Q3 | 11 | 0.27 | 413.00 | 51.48 | 342.0 | 399.75 | 422.50 | 435.75 | 465.0 | ▃▁▁▇▃ | 1652.0 | 279.05 |
| lab_CK_baseline_n | 14 | 0.07 | 19.00 | NA | 19.0 | 19.00 | 19.00 | 19.00 | 19.0 | ▁▁▇▁▁ | 19.0 | 3.21 |
| lab_CK_baseline_med | 14 | 0.07 | 147.00 | NA | 147.0 | 147.00 | 147.00 | 147.00 | 147.0 | ▁▁▇▁▁ | 147.0 | 24.83 |
| lab_CK_baseline_Q1 | 14 | 0.07 | 110.00 | NA | 110.0 | 110.00 | 110.00 | 110.00 | 110.0 | ▁▁▇▁▁ | 110.0 | 18.58 |
| lab_CK_baseline_Q3 | 14 | 0.07 | 510.00 | NA | 510.0 | 510.00 | 510.00 | 510.00 | 510.0 | ▁▁▇▁▁ | 510.0 | 86.15 |
| lab_CK_peak_n | 14 | 0.07 | 15.00 | NA | 15.0 | 15.00 | 15.00 | 15.00 | 15.0 | ▁▁▇▁▁ | 15.0 | 2.53 |
| lab_CK_peak_med | 14 | 0.07 | 385.00 | NA | 385.0 | 385.00 | 385.00 | 385.00 | 385.0 | ▁▁▇▁▁ | 385.0 | 65.03 |
| lab_CK_peak_Q1 | 14 | 0.07 | 117.00 | NA | 117.0 | 117.00 | 117.00 | 117.00 | 117.0 | ▁▁▇▁▁ | 117.0 | 19.76 |
| lab_CK_peak_Q3 | 14 | 0.07 | 1615.00 | NA | 1615.0 | 1615.00 | 1615.00 | 1615.00 | 1615.0 | ▁▁▇▁▁ | 1615.0 | 272.80 |
| lab_Ddim_baseline_n | 13 | 0.13 | 18.50 | 2.12 | 17.0 | 17.75 | 18.50 | 19.25 | 20.0 | ▇▁▁▁▇ | 37.0 | 6.25 |
| lab_Ddim_baseline_med | 13 | 0.13 | 4642.00 | 907.93 | 4000.0 | 4321.00 | 4642.00 | 4963.00 | 5284.0 | ▇▁▁▁▇ | 9284.0 | 1568.24 |
| lab_Ddim_baseline_Q1 | 14 | 0.07 | 4069.00 | NA | 4069.0 | 4069.00 | 4069.00 | 4069.00 | 4069.0 | ▁▁▇▁▁ | 4069.0 | 687.33 |
| lab_Ddim_baseline_Q3 | 14 | 0.07 | 9095.00 | NA | 9095.0 | 9095.00 | 9095.00 | 9095.00 | 9095.0 | ▁▁▇▁▁ | 9095.0 | 1536.32 |
| lab_Ddim_NS_n | 7 | 0.53 | 34.12 | 11.41 | 20.0 | 27.50 | 33.00 | 36.25 | 58.0 | ▃▇▂▁▂ | 273.0 | 46.11 |
| lab_Ddim_NS_med | 7 | 0.53 | 3112.88 | 1124.58 | 1700.0 | 2325.00 | 3139.00 | 3781.25 | 4900.0 | ▇▇▃▇▃ | 24903.0 | 4206.59 |
| lab_Ddim_NS_Q1 | 8 | 0.47 | 1791.86 | 881.26 | 800.0 | 1129.00 | 1700.00 | 2242.50 | 3300.0 | ▇▂▂▂▂ | 12543.0 | 2118.75 |
| lab_Ddim_NS_Q3 | 8 | 0.47 | 5335.00 | 2878.01 | 2410.0 | 3450.00 | 4400.00 | 6667.50 | 10300.0 | ▇▅▁▂▂ | 37345.0 | 6308.28 |
| lab_Ddim_peak_n | 13 | 0.13 | 66.50 | 72.83 | 15.0 | 40.75 | 66.50 | 92.25 | 118.0 | ▇▁▁▁▇ | 133.0 | 22.47 |
| lab_Ddim_peak_med | 13 | 0.13 | 3075.00 | 1435.43 | 2060.0 | 2567.50 | 3075.00 | 3582.50 | 4090.0 | ▇▁▁▁▇ | 6150.0 | 1038.85 |
| lab_Ddim_peak_Q1 | 13 | 0.13 | 1700.00 | 763.68 | 1160.0 | 1430.00 | 1700.00 | 1970.00 | 2240.0 | ▇▁▁▁▇ | 3400.0 | 574.32 |
| lab_Ddim_peak_Q3 | 13 | 0.13 | 5507.25 | 4097.33 | 2610.0 | 4058.62 | 5507.25 | 6955.88 | 8404.5 | ▇▁▁▁▇ | 11014.5 | 1860.56 |
| lab_fibrino_NS_n | 10 | 0.33 | 26.40 | 8.17 | 17.0 | 18.00 | 31.00 | 33.00 | 33.0 | ▅▁▁▁▇ | 132.0 | 22.30 |
| lab_fibrino_NS_med | 10 | 0.33 | 655.20 | 92.14 | 551.0 | 596.00 | 627.00 | 736.00 | 766.0 | ▃▇▁▁▇ | 3276.0 | 553.38 |
| lab_fibrino_NS_Q1 | 10 | 0.33 | 515.20 | 103.01 | 386.0 | 455.00 | 496.00 | 619.00 | 620.0 | ▃▃▃▁▇ | 2576.0 | 435.14 |
| lab_fibrino_NS_Q3 | 10 | 0.33 | 779.20 | 76.22 | 689.0 | 719.00 | 782.00 | 836.00 | 870.0 | ▇▁▃▁▇ | 3896.0 | 658.11 |
| lab_troponin_baseline_n | 13 | 0.13 | 26.00 | 12.73 | 17.0 | 21.50 | 26.00 | 30.50 | 35.0 | ▇▁▁▁▇ | 52.0 | 8.78 |
| lab_troponin_baseline_med | 13 | 0.13 | 201.90 | 205.20 | 56.8 | 129.35 | 201.90 | 274.45 | 347.0 | ▇▁▁▁▇ | 403.8 | 68.21 |
| lab_troponin_baseline_Q1 | 14 | 0.07 | 182.00 | NA | 182.0 | 182.00 | 182.00 | 182.00 | 182.0 | ▁▁▇▁▁ | 182.0 | 30.74 |
| lab_troponin_baseline_Q3 | 14 | 0.07 | 1267.00 | NA | 1267.0 | 1267.00 | 1267.00 | 1267.00 | 1267.0 | ▁▁▇▁▁ | 1267.0 | 214.02 |
| lab_troponin_peak_n | 13 | 0.13 | 15.50 | 0.71 | 15.0 | 15.25 | 15.50 | 15.75 | 16.0 | ▇▁▁▁▇ | 31.0 | 5.24 |
| lab_troponin_peak_med | 13 | 0.13 | 402.00 | 8.49 | 396.0 | 399.00 | 402.00 | 405.00 | 408.0 | ▇▁▁▁▇ | 804.0 | 135.81 |
| lab_troponin_peak_Q1 | 13 | 0.13 | 179.00 | 111.72 | 100.0 | 139.50 | 179.00 | 218.50 | 258.0 | ▇▁▁▁▇ | 358.0 | 60.47 |
| lab_troponin_peak_Q3 | 13 | 0.13 | 979.50 | 424.97 | 679.0 | 829.25 | 979.50 | 1129.75 | 1280.0 | ▇▁▁▁▇ | 1959.0 | 330.91 |
| lab_troponin_NS_n | 8 | 0.47 | 28.00 | 17.56 | 7.0 | 15.00 | 33.00 | 34.00 | 58.0 | ▅▂▇▁▂ | 196.0 | 33.11 |
| lab_troponin_NS_med | 8 | 0.47 | 84.14 | 88.75 | 31.0 | 42.50 | 47.00 | 72.00 | 282.0 | ▇▁▁▁▁ | 589.0 | 99.49 |
| lab_troponin_NS_Q1 | 9 | 0.40 | 24.33 | 17.96 | 6.0 | 11.00 | 20.50 | 34.50 | 52.0 | ▇▇▁▃▃ | 146.0 | 24.66 |
| lab_troponin_NS_Q3 | 9 | 0.40 | 301.67 | 363.25 | 60.0 | 101.00 | 177.50 | 266.75 | 1023.0 | ▇▂▁▁▂ | 1810.0 | 305.74 |
| lab_NTproBNP_baseline_n | 12 | 0.20 | 12.67 | 6.66 | 5.0 | 10.50 | 16.00 | 16.50 | 17.0 | ▃▁▁▁▇ | 38.0 | 6.42 |
| lab_NTproBNP_baseline_med | 12 | 0.20 | 20548.33 | 19021.51 | 4328.0 | 10080.50 | 15833.00 | 28658.50 | 41484.0 | ▇▇▁▁▇ | 61645.0 | 10413.01 |
| lab_NTproBNP_baseline_Q1 | 13 | 0.13 | 18964.00 | 23825.26 | 2117.0 | 10540.50 | 18964.00 | 27387.50 | 35811.0 | ▇▁▁▁▇ | 37928.0 | 6406.76 |
| lab_NTproBNP_baseline_Q3 | 13 | 0.13 | 32922.50 | 27651.41 | 13370.0 | 23146.25 | 32922.50 | 42698.75 | 52475.0 | ▇▁▁▁▇ | 65845.0 | 11122.47 |
| lab_NTproBNP_peak_n | 13 | 0.13 | 15.50 | 0.71 | 15.0 | 15.25 | 15.50 | 15.75 | 16.0 | ▇▁▁▁▇ | 31.0 | 5.24 |
| lab_NTproBNP_peak_med | 13 | 0.13 | 19735.00 | 6696.30 | 15000.0 | 17367.50 | 19735.00 | 22102.50 | 24470.0 | ▇▁▁▁▇ | 39470.0 | 6667.23 |
| lab_NTproBNP_peak_Q1 | 13 | 0.13 | 13270.50 | 5574.12 | 9329.0 | 11299.75 | 13270.50 | 15241.25 | 17212.0 | ▇▁▁▁▇ | 26541.0 | 4483.28 |
| lab_NTproBNP_peak_Q3 | 13 | 0.13 | 20827.50 | 8241.33 | 15000.0 | 17913.75 | 20827.50 | 23741.25 | 26655.0 | ▇▁▁▁▇ | 41655.0 | 7036.32 |
| lab_NTproBNP_NS_n | 13 | 0.13 | 45.50 | 17.68 | 33.0 | 39.25 | 45.50 | 51.75 | 58.0 | ▇▁▁▁▇ | 91.0 | 15.37 |
| lab_NTproBNP_NS_med | 13 | 0.13 | 2056.50 | 1793.93 | 788.0 | 1422.25 | 2056.50 | 2690.75 | 3325.0 | ▇▁▁▁▇ | 4113.0 | 694.76 |
| lab_NTproBNP_NS_Q1 | 13 | 0.13 | 407.00 | 329.51 | 174.0 | 290.50 | 407.00 | 523.50 | 640.0 | ▇▁▁▁▇ | 814.0 | 137.50 |
| lab_NTproBNP_NS_Q3 | 13 | 0.13 | 8662.00 | 2667.21 | 6776.0 | 7719.00 | 8662.00 | 9605.00 | 10548.0 | ▇▁▁▁▇ | 17324.0 | 2926.35 |
| lab_BNP_baseline_n | 13 | 0.13 | 22.00 | 8.49 | 16.0 | 19.00 | 22.00 | 25.00 | 28.0 | ▇▁▁▁▇ | 44.0 | 7.43 |
| lab_BNP_baseline_med | 13 | 0.13 | 3065.50 | 3786.56 | 388.0 | 1726.75 | 3065.50 | 4404.25 | 5743.0 | ▇▁▁▁▇ | 6131.0 | 1035.64 |
| lab_BNP_baseline_Q1 | 13 | 0.13 | 1361.50 | 1819.39 | 75.0 | 718.25 | 1361.50 | 2004.75 | 2648.0 | ▇▁▁▁▇ | 2723.0 | 459.97 |
| lab_BNP_baseline_Q3 | 13 | 0.13 | 6497.50 | 7653.02 | 1086.0 | 3791.75 | 6497.50 | 9203.25 | 11909.0 | ▇▁▁▁▇ | 12995.0 | 2195.10 |
| lab_BNP_peak_n | 12 | 0.20 | 51.67 | 66.15 | 11.0 | 13.50 | 16.00 | 72.00 | 128.0 | ▇▁▁▁▃ | 155.0 | 26.18 |
| lab_BNP_peak_med | 12 | 0.20 | 2070.23 | 1905.37 | 760.0 | 977.35 | 1194.70 | 2725.35 | 4256.0 | ▇▁▁▁▃ | 6210.7 | 1049.10 |
| lab_BNP_peak_Q1 | 12 | 0.20 | 1039.60 | 1126.18 | 388.0 | 389.40 | 390.80 | 1365.40 | 2340.0 | ▇▁▁▁▃ | 3118.8 | 526.82 |
| lab_BNP_peak_Q3 | 12 | 0.20 | 4256.67 | 2583.18 | 1434.0 | 3133.50 | 4833.00 | 5668.00 | 6503.0 | ▇▁▁▇▇ | 12770.0 | 2157.09 |
| lab_BNP_NS_n | 11 | 0.27 | 11.25 | 4.79 | 7.0 | 8.50 | 10.00 | 12.75 | 18.0 | ▇▃▁▁▃ | 45.0 | 7.60 |
| lab_BNP_NS_med | 11 | 0.27 | 4262.50 | 2131.84 | 2231.0 | 3073.25 | 3805.00 | 4994.25 | 7209.0 | ▇▇▇▁▇ | 17050.0 | 2880.07 |
| lab_BNP_NS_min | 11 | 0.27 | 2442.75 | 2411.82 | 16.0 | 1252.00 | 2002.00 | 3192.75 | 5751.0 | ▇▇▇▁▇ | 9771.0 | 1650.51 |
| lab_BNP_NS_max | 11 | 0.27 | 8286.50 | 5441.64 | 3287.0 | 5699.00 | 6921.00 | 9508.50 | 16017.0 | ▃▇▁▁▃ | 33146.0 | 5598.99 |
| lab_CRP_baseline_n | 12 | 0.20 | 33.33 | 11.59 | 21.0 | 28.00 | 35.00 | 39.50 | 44.0 | ▇▁▁▇▇ | 100.0 | 16.89 |
| lab_CRP_baseline_med | 12 | 0.20 | 195.83 | 47.39 | 146.5 | 173.25 | 200.00 | 220.50 | 241.0 | ▇▁▇▁▇ | 587.5 | 99.24 |
| lab_CRP_baseline_Q1 | 14 | 0.07 | 150.00 | NA | 150.0 | 150.00 | 150.00 | 150.00 | 150.0 | ▁▁▇▁▁ | 150.0 | 25.34 |
| lab_CRP_baseline_Q3 | 14 | 0.07 | 311.00 | NA | 311.0 | 311.00 | 311.00 | 311.00 | 311.0 | ▁▁▇▁▁ | 311.0 | 52.53 |
| lab_CRP_peak_n | 11 | 0.27 | 66.00 | 71.67 | 15.0 | 28.50 | 38.50 | 76.00 | 172.0 | ▇▁▁▁▂ | 264.0 | 44.59 |
| lab_CRP_peak_med | 11 | 0.27 | 189.53 | 44.80 | 154.0 | 166.82 | 174.55 | 197.25 | 255.0 | ▇▃▁▁▃ | 758.1 | 128.06 |
| lab_CRP_peak_Q1 | 12 | 0.20 | 146.00 | 30.32 | 128.0 | 128.50 | 129.00 | 155.00 | 181.0 | ▇▁▁▁▃ | 438.0 | 73.99 |
| lab_CRP_peak_Q3 | 12 | 0.20 | 266.67 | 40.05 | 231.0 | 245.00 | 259.00 | 284.50 | 310.0 | ▇▇▁▁▇ | 800.0 | 135.14 |
| lab_CRP_NS_n | 5 | 0.67 | 29.40 | 14.95 | 7.0 | 22.25 | 32.00 | 34.50 | 58.0 | ▃▃▇▂▂ | 294.0 | 49.66 |
| lab_CRP_NS_med | 5 | 0.67 | 234.20 | 29.96 | 193.0 | 207.00 | 237.00 | 252.25 | 283.0 | ▇▂▂▃▃ | 2342.0 | 395.61 |
| lab_CRP_NS_Q1 | 6 | 0.60 | 158.22 | 25.66 | 113.0 | 156.00 | 160.00 | 180.00 | 185.0 | ▅▁▅▅▇ | 1424.0 | 240.54 |
| lab_CRP_NS_Q3 | 6 | 0.60 | 299.89 | 39.59 | 219.0 | 290.00 | 299.00 | 309.00 | 364.0 | ▂▁▇▂▃ | 2699.0 | 455.91 |
| lab_ESR_baseline_n | 14 | 0.07 | 44.00 | NA | 44.0 | 44.00 | 44.00 | 44.00 | 44.0 | ▁▁▇▁▁ | 44.0 | 7.43 |
| lab_ESR_baseline_med | 14 | 0.07 | 59.00 | NA | 59.0 | 59.00 | 59.00 | 59.00 | 59.0 | ▁▁▇▁▁ | 59.0 | 9.97 |
| lab_ESR_peak_n | 12 | 0.20 | 58.67 | 52.56 | 15.0 | 29.50 | 44.00 | 80.50 | 117.0 | ▇▇▁▁▇ | 176.0 | 29.73 |
| lab_ESR_peak_med | 12 | 0.20 | 69.67 | 5.03 | 65.0 | 67.00 | 69.00 | 72.00 | 75.0 | ▇▇▁▁▇ | 209.0 | 35.30 |
| lab_ESR_peak_Q1 | 13 | 0.13 | 43.50 | 2.12 | 42.0 | 42.75 | 43.50 | 44.25 | 45.0 | ▇▁▁▁▇ | 87.0 | 14.70 |
| lab_ESR_peak_Q3 | 13 | 0.13 | 90.50 | 0.71 | 90.0 | 90.25 | 90.50 | 90.75 | 91.0 | ▇▁▁▁▇ | 181.0 | 30.57 |
| lab_ESR_NS_n | 11 | 0.27 | 21.25 | 8.22 | 14.0 | 17.00 | 19.00 | 23.25 | 33.0 | ▃▇▁▁▃ | 85.0 | 14.36 |
| lab_ESR_NS_med | 11 | 0.27 | 57.75 | 5.17 | 53.0 | 54.88 | 56.50 | 59.38 | 65.0 | ▃▇▁▁▃ | 231.0 | 39.02 |
| lab_ESR_NS_Q1 | 11 | 0.27 | 42.80 | 13.02 | 28.2 | 35.55 | 42.00 | 49.25 | 59.0 | ▇▇▇▁▇ | 171.2 | 28.92 |
| lab_ESR_NS_Q3 | 11 | 0.27 | 78.17 | 6.90 | 72.0 | 74.62 | 76.35 | 79.90 | 88.0 | ▃▇▁▁▃ | 312.7 | 52.82 |
| lab_PCT_baseline_n | 13 | 0.13 | 23.50 | 3.54 | 21.0 | 22.25 | 23.50 | 24.75 | 26.0 | ▇▁▁▁▇ | 47.0 | 7.94 |
| lab_PCT_baseline_med | 13 | 0.13 | 28.85 | 10.11 | 21.7 | 25.27 | 28.85 | 32.42 | 36.0 | ▇▁▁▁▇ | 57.7 | 9.75 |
| lab_PCT_baseline_Q1 | 14 | 0.07 | 8.00 | NA | 8.0 | 8.00 | 8.00 | 8.00 | 8.0 | ▁▁▇▁▁ | 8.0 | 1.35 |
| lab_PCT_baseline_Q3 | 14 | 0.07 | 99.00 | NA | 99.0 | 99.00 | 99.00 | 99.00 | 99.0 | ▁▁▇▁▁ | 99.0 | 16.72 |
| lab_PCT_peak_n | 14 | 0.07 | 33.00 | NA | 33.0 | 33.00 | 33.00 | 33.00 | 33.0 | ▁▁▇▁▁ | 33.0 | 5.57 |
| lab_PCT_peak_med | 14 | 0.07 | 6.00 | NA | 6.0 | 6.00 | 6.00 | 6.00 | 6.0 | ▁▁▇▁▁ | 6.0 | 1.01 |
| lab_PCT_peak_Q1 | 14 | 0.07 | 2.70 | NA | 2.7 | 2.70 | 2.70 | 2.70 | 2.7 | ▁▁▇▁▁ | 2.7 | 0.46 |
| lab_PCT_peak_Q3 | 14 | 0.07 | 16.50 | NA | 16.5 | 16.50 | 16.50 | 16.50 | 16.5 | ▁▁▇▁▁ | 16.5 | 2.79 |
| lab_PCT_NS_n | 9 | 0.40 | 25.33 | 7.28 | 16.0 | 20.25 | 25.00 | 32.00 | 33.0 | ▃▇▁▃▇ | 152.0 | 25.68 |
| lab_PCT_NS_med | 9 | 0.40 | 10.01 | 7.10 | 2.7 | 5.58 | 8.70 | 11.86 | 22.5 | ▇▁▅▁▂ | 60.0 | 10.14 |
| lab_PCT_NS_Q1 | 10 | 0.33 | 2.33 | 1.47 | 0.4 | 1.80 | 2.20 | 2.87 | 4.4 | ▇▇▇▇▇ | 11.7 | 1.97 |
| lab_PCT_NS_Q3 | 10 | 0.33 | 20.15 | 4.42 | 15.8 | 16.70 | 18.50 | 24.80 | 25.0 | ▇▃▁▁▇ | 100.8 | 17.02 |
| lab_IL6_baseline_n | 11 | 0.27 | 19.50 | 7.90 | 13.0 | 16.00 | 17.00 | 20.50 | 31.0 | ▃▇▁▁▃ | 78.0 | 13.18 |
| lab_IL6_baseline_med | 11 | 0.27 | 187.62 | 43.10 | 135.0 | 161.25 | 194.60 | 220.97 | 226.3 | ▃▃▁▁▇ | 750.5 | 126.77 |
| lab_IL6_baseline_Q1 | 14 | 0.07 | 87.00 | NA | 87.0 | 87.00 | 87.00 | 87.00 | 87.0 | ▁▁▇▁▁ | 87.0 | 14.70 |
| lab_IL6_baseline_Q3 | 14 | 0.07 | 175.00 | NA | 175.0 | 175.00 | 175.00 | 175.00 | 175.0 | ▁▁▇▁▁ | 175.0 | 29.56 |
| lab_IL6_NS_n | 11 | 0.27 | 16.75 | 11.84 | 7.0 | 8.50 | 13.50 | 21.75 | 33.0 | ▇▁▃▁▃ | 67.0 | 11.32 |
| lab_IL6_NS_med | 11 | 0.27 | 151.50 | 66.17 | 80.0 | 103.25 | 155.50 | 203.75 | 215.0 | ▃▃▁▁▇ | 606.0 | 102.36 |
| lab_IL6_NS_Q1 | 11 | 0.27 | 43.70 | 24.95 | 7.7 | 37.17 | 51.70 | 58.22 | 63.7 | ▃▁▁▃▇ | 174.8 | 29.53 |
| lab_IL6_NS_Q3 | 11 | 0.27 | 308.10 | 18.80 | 286.0 | 297.55 | 308.20 | 318.75 | 330.0 | ▇▇▁▇▇ | 1232.4 | 208.18 |
| lab_IL1_NS_n | 14 | 0.07 | 33.00 | NA | 33.0 | 33.00 | 33.00 | 33.00 | 33.0 | ▁▁▇▁▁ | 33.0 | 5.57 |
| lab_IL1_NS_med | 14 | 0.07 | 0.80 | NA | 0.8 | 0.80 | 0.80 | 0.80 | 0.8 | ▁▁▇▁▁ | 0.8 | 0.14 |
| lab_IL1_NS_Q1 | 14 | 0.07 | 0.40 | NA | 0.4 | 0.40 | 0.40 | 0.40 | 0.4 | ▁▁▇▁▁ | 0.4 | 0.07 |
| lab_IL1_NS_Q3 | 14 | 0.07 | 1.20 | NA | 1.2 | 1.20 | 1.20 | 1.20 | 1.2 | ▁▁▇▁▁ | 1.2 | 0.20 |
| lab_IL8_NS_n | 14 | 0.07 | 33.00 | NA | 33.0 | 33.00 | 33.00 | 33.00 | 33.0 | ▁▁▇▁▁ | 33.0 | 5.57 |
| lab_IL8_NS_med | 14 | 0.07 | 41.70 | NA | 41.7 | 41.70 | 41.70 | 41.70 | 41.7 | ▁▁▇▁▁ | 41.7 | 7.04 |
| lab_IL8_NS_Q1 | 14 | 0.07 | 25.10 | NA | 25.1 | 25.10 | 25.10 | 25.10 | 25.1 | ▁▁▇▁▁ | 25.1 | 4.24 |
| lab_IL8_NS_Q3 | 14 | 0.07 | 54.40 | NA | 54.4 | 54.40 | 54.40 | 54.40 | 54.4 | ▁▁▇▁▁ | 54.4 | 9.19 |
| admis_days_hosp_med | 9 | 0.40 | 7.98 | 2.75 | 4.0 | 7.03 | 7.45 | 9.45 | 12.0 | ▃▇▃▃▃ | 47.9 | 8.09 |
| admis_days_hosp_Q1 | 9 | 0.40 | 5.67 | 2.42 | 3.0 | 4.00 | 5.00 | 7.50 | 9.0 | ▇▁▂▁▅ | 34.0 | 5.74 |
| admis_days_hosp_Q3 | 9 | 0.40 | 12.18 | 3.59 | 8.0 | 10.03 | 11.55 | 13.75 | 18.0 | ▇▃▇▁▃ | 73.1 | 12.35 |
| admis_days_ICU_n | 3 | 0.80 | 32.83 | 37.52 | 7.0 | 16.50 | 23.00 | 33.50 | 148.0 | ▇▁▁▁▁ | 394.0 | 66.55 |
| admis_days_ICU_med | 7 | 0.53 | 5.70 | 1.03 | 4.0 | 4.92 | 6.00 | 6.43 | 7.0 | ▂▅▁▇▅ | 45.6 | 7.70 |
| admis_days_ICU_min | 14 | 0.07 | 3.00 | NA | 3.0 | 3.00 | 3.00 | 3.00 | 3.0 | ▁▁▇▁▁ | 3.0 | 0.51 |
| admis_days_ICU_Q1 | 9 | 0.40 | 3.95 | 1.10 | 3.0 | 3.17 | 3.85 | 4.00 | 6.0 | ▅▇▁▁▂ | 23.7 | 4.00 |
| admis_days_ICU_Q3 | 9 | 0.40 | 8.50 | 1.97 | 5.0 | 8.00 | 9.00 | 10.00 | 10.0 | ▂▁▅▁▇ | 51.0 | 8.61 |
| admis_days_ICU_max | 14 | 0.07 | 12.00 | NA | 12.0 | 12.00 | 12.00 | 12.00 | 12.0 | ▁▁▇▁▁ | 12.0 | 2.03 |
| critcare_NIV_n | 7 | 0.53 | 6.62 | 5.01 | 0.0 | 2.75 | 6.00 | 11.25 | 13.0 | ▅▅▁▂▇ | 53.0 | 8.95 |
| critcare_MV_n | 0 | 1.00 | 8.67 | 10.81 | 0.0 | 2.50 | 4.00 | 9.00 | 37.0 | ▇▁▁▁▁ | 130.0 | 21.96 |
| critcare_MV_med | 13 | 0.13 | 3.00 | 0.00 | 3.0 | 3.00 | 3.00 | 3.00 | 3.0 | ▁▁▇▁▁ | 6.0 | 1.01 |
| critcare_MV_min | 15 | 0.00 | NaN | NaN | NA | NA | NA | NA | NA | 0.0 | 0.00 | |
| critcare_MV_max | 15 | 0.00 | NaN | NaN | NA | NA | NA | NA | NA | 0.0 | 0.00 | |
| critcare_inotrop_n | 1 | 0.93 | 21.57 | 21.60 | 0.0 | 10.00 | 17.00 | 26.50 | 90.0 | ▇▅▁▁▁ | 302.0 | 51.01 |
| critcare_inotrop_med | 12 | 0.20 | 3.00 | 0.00 | 3.0 | 3.00 | 3.00 | 3.00 | 3.0 | ▁▁▇▁▁ | 9.0 | 1.52 |
| critcare_inotrop_Q1 | 12 | 0.20 | 2.33 | 0.58 | 2.0 | 2.00 | 2.00 | 2.50 | 3.0 | ▇▁▁▁▃ | 7.0 | 1.18 |
| critcare_inotrop_Q3 | 12 | 0.20 | 4.50 | 1.50 | 3.0 | 3.75 | 4.50 | 5.25 | 6.0 | ▇▁▇▁▇ | 13.5 | 2.28 |
| critcare_ECMO_n | 5 | 0.67 | 2.80 | 3.43 | 0.0 | 1.00 | 1.50 | 2.75 | 10.0 | ▇▁▁▁▁ | 28.0 | 4.73 |
| critcare_ECMO_med | 14 | 0.07 | 4.50 | NA | 4.5 | 4.50 | 4.50 | 4.50 | 4.5 | ▁▁▇▁▁ | 4.5 | 0.76 |
| critcare_ECMO_Q1 | 14 | 0.07 | 3.00 | NA | 3.0 | 3.00 | 3.00 | 3.00 | 3.0 | ▁▁▇▁▁ | 3.0 | 0.51 |
| critcare_ECMO_Q3 | 14 | 0.07 | 6.00 | NA | 6.0 | 6.00 | 6.00 | 6.00 | 6.0 | ▁▁▇▁▁ | 6.0 | 1.01 |
| critcare_RRT_n | 12 | 0.20 | 2.33 | 3.21 | 0.0 | 0.50 | 1.00 | 3.50 | 6.0 | ▇▁▁▁▃ | 7.0 | 1.18 |
| rx_cortic_n | 1 | 0.93 | 22.71 | 23.09 | 1.0 | 10.50 | 16.50 | 28.25 | 91.0 | ▇▂▁▁▁ | 318.0 | 53.72 |
| rx_aspirin_low_n | 10 | 0.33 | 9.00 | 7.31 | 4.0 | 4.00 | 5.00 | 11.00 | 21.0 | ▇▁▂▁▂ | 45.0 | 7.60 |
| rx_aspirin_high_n | 12 | 0.20 | 2.67 | 0.58 | 2.0 | 2.50 | 3.00 | 3.00 | 3.0 | ▃▁▁▁▇ | 8.0 | 1.35 |
| rx_aspirin_NS | 14 | 0.07 | 29.00 | NA | 29.0 | 29.00 | 29.00 | 29.00 | 29.0 | ▁▁▇▁▁ | 29.0 | 4.90 |
| rx_heparin_n | 9 | 0.40 | 28.00 | 30.98 | 0.0 | 11.75 | 18.50 | 30.50 | 87.0 | ▇▅▁▁▂ | 168.0 | 28.38 |
| rx_IVIg_once_n | 1 | 0.93 | 30.36 | 34.44 | 7.0 | 13.00 | 23.00 | 32.25 | 144.0 | ▇▂▁▁▁ | 425.0 | 71.79 |
| rx_IVIg_multip_n | 8 | 0.47 | 9.00 | 13.67 | 1.0 | 1.50 | 4.00 | 8.00 | 39.0 | ▇▂▁▁▂ | 63.0 | 10.64 |
| rx_anakinra_n | 8 | 0.47 | 6.71 | 7.91 | 1.0 | 3.00 | 4.00 | 6.00 | 24.0 | ▇▂▁▁▂ | 47.0 | 7.94 |
| rx_infliximab_n | 12 | 0.20 | 3.00 | 4.36 | 0.0 | 0.50 | 1.00 | 4.50 | 8.0 | ▇▁▁▁▃ | 9.0 | 1.52 |
| rx_tocilizumab_n | 10 | 0.33 | 6.20 | 6.30 | 1.0 | 1.00 | 3.00 | 12.00 | 14.0 | ▇▁▁▁▅ | 31.0 | 5.24 |
| rx_antibiotics_n | 12 | 0.20 | 20.67 | 7.37 | 15.0 | 16.50 | 18.00 | 23.50 | 29.0 | ▇▇▁▁▇ | 62.0 | 10.47 |
| rx_plasma_n | 14 | 0.07 | 1.00 | NA | 1.0 | 1.00 | 1.00 | 1.00 | 1.0 | ▁▁▇▁▁ | 1.0 | 0.17 |
| rx_remdesivir_n | 14 | 0.07 | 7.00 | NA | 7.0 | 7.00 | 7.00 | 7.00 | 7.0 | ▁▁▇▁▁ | 7.0 | 1.18 |
| outcome_death_n | 0 | 1.00 | 0.60 | 1.06 | 0.0 | 0.00 | 0.00 | 1.00 | 4.0 | ▇▅▁▁▁ | 9.0 | 1.52 |
| outcome_LVdysfunc_n | 8 | 0.47 | 2.86 | 3.13 | 0.0 | 1.00 | 2.00 | 3.50 | 9.0 | ▇▅▂▁▂ | 20.0 | 3.38 |
df_cohort_controls_stats <- df_cohort_controls %>% filter(cohort_type == "control")
df_cohort_controls_stats <- df_cohort_controls_stats[colSums(!is.na(df_cohort_controls_stats)) > 0]
skimsum <- skim_with(numeric = sfl(sum = ~ sum(., na.rm = TRUE), Prct_total = ~ sum(., na.rm = TRUE)/sum(df_cohort_controls_stats$tot_cases_n)*100), append = TRUE)
skimsum(df_cohort_controls_stats)| Name | df_cohort_controls_stats |
| Number of rows | 2 |
| Number of columns | 80 |
| _______________________ | |
| Column type frequency: | |
| character | 7 |
| numeric | 73 |
| ________________________ | |
| Group variables | None |
Variable type: character
| skim_variable | n_missing | complete_rate | min | max | empty | n_unique | whitespace |
|---|---|---|---|---|---|---|---|
| doi | 0 | 1 | 35 | 39 | 0 | 2 | 0 |
| first_author | 0 | 1 | 18 | 18 | 0 | 2 | 0 |
| journal | 0 | 1 | 4 | 13 | 0 | 2 | 0 |
| cohort_id | 0 | 1 | 18 | 19 | 0 | 2 | 0 |
| cohort_type | 0 | 1 | 7 | 7 | 0 | 1 | 0 |
| prim_input | 0 | 1 | 2 | 2 | 0 | 1 | 0 |
| cross_check | 0 | 1 | 3 | 3 | 0 | 1 | 0 |
Variable type: numeric
| skim_variable | n_missing | complete_rate | mean | sd | p0 | p25 | p50 | p75 | p100 | hist | sum | Prct_total |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| date_of_publication | 0 | 1.0 | 43991.50 | 2.12 | 43990.0 | 43990.75 | 43991.50 | 43992.25 | 43993.0 | ▇▁▁▁▇ | 87983.0 | 6507.62 |
| tot_cases_n | 0 | 1.0 | 676.00 | 644.88 | 220.0 | 448.00 | 676.00 | 904.00 | 1132.0 | ▇▁▁▁▇ | 1352.0 | 100.00 |
| sex_m | 1 | 0.5 | 128.00 | NA | 128.0 | 128.00 | 128.00 | 128.00 | 128.0 | ▁▁▇▁▁ | 128.0 | 9.47 |
| sex_f | 1 | 0.5 | 92.00 | NA | 92.0 | 92.00 | 92.00 | 92.00 | 92.0 | ▁▁▇▁▁ | 92.0 | 6.80 |
| age_med_yrs | 0 | 1.0 | 2.35 | 0.49 | 2.0 | 2.17 | 2.35 | 2.53 | 2.7 | ▇▁▁▁▇ | 4.7 | 0.35 |
| age_Q1_yrs | 0 | 1.0 | 1.30 | 0.14 | 1.2 | 1.25 | 1.30 | 1.35 | 1.4 | ▇▁▁▁▇ | 2.6 | 0.19 |
| age_Q3_yrs | 0 | 1.0 | 4.15 | 0.78 | 3.6 | 3.88 | 4.15 | 4.43 | 4.7 | ▇▁▁▁▇ | 8.3 | 0.61 |
| race_n_white | 1 | 0.5 | 48.00 | NA | 48.0 | 48.00 | 48.00 | 48.00 | 48.0 | ▁▁▇▁▁ | 48.0 | 3.55 |
| race_n_black | 1 | 0.5 | 67.00 | NA | 67.0 | 67.00 | 67.00 | 67.00 | 67.0 | ▁▁▇▁▁ | 67.0 | 4.96 |
| race_n_asian | 1 | 0.5 | 28.00 | NA | 28.0 | 28.00 | 28.00 | 28.00 | 28.0 | ▁▁▇▁▁ | 28.0 | 2.07 |
| race_n_other | 1 | 0.5 | 44.00 | NA | 44.0 | 44.00 | 44.00 | 44.00 | 44.0 | ▁▁▇▁▁ | 44.0 | 3.25 |
| symp_cardiovasc_myocard_n | 1 | 0.5 | 3.00 | NA | 3.0 | 3.00 | 3.00 | 3.00 | 3.0 | ▁▁▇▁▁ | 3.0 | 0.22 |
| symp_cardiovasc_pericard_n | 1 | 0.5 | 15.00 | NA | 15.0 | 15.00 | 15.00 | 15.00 | 15.0 | ▁▁▇▁▁ | 15.0 | 1.11 |
| symp_cardiovasc_cordilat_n | 1 | 0.5 | 42.00 | NA | 42.0 | 42.00 | 42.00 | 42.00 | 42.0 | ▁▁▇▁▁ | 42.0 | 3.11 |
| kawasaki_complete_n | 1 | 0.5 | 142.00 | NA | 142.0 | 142.00 | 142.00 | 142.00 | 142.0 | ▁▁▇▁▁ | 142.0 | 10.50 |
| kawasaki_incomplete_n | 1 | 0.5 | 78.00 | NA | 78.0 | 78.00 | 78.00 | 78.00 | 78.0 | ▁▁▇▁▁ | 78.0 | 5.77 |
| kawasaki_exanthema_n | 1 | 0.5 | 187.00 | NA | 187.0 | 187.00 | 187.00 | 187.00 | 187.0 | ▁▁▇▁▁ | 187.0 | 13.83 |
| kawasaki_mouth_n | 1 | 0.5 | 189.00 | NA | 189.0 | 189.00 | 189.00 | 189.00 | 189.0 | ▁▁▇▁▁ | 189.0 | 13.98 |
| kawasaki_extremity_n | 1 | 0.5 | 120.00 | NA | 120.0 | 120.00 | 120.00 | 120.00 | 120.0 | ▁▁▇▁▁ | 120.0 | 8.88 |
| kawasaki_cervical_n | 1 | 0.5 | 114.00 | NA | 114.0 | 114.00 | 114.00 | 114.00 | 114.0 | ▁▁▇▁▁ | 114.0 | 8.43 |
| kawasaki_conjunctivitis_n | 1 | 0.5 | 176.00 | NA | 176.0 | 176.00 | 176.00 | 176.00 | 176.0 | ▁▁▇▁▁ | 176.0 | 13.02 |
| lab_Hb_NS_n | 1 | 0.5 | 1132.00 | NA | 1132.0 | 1132.00 | 1132.00 | 1132.00 | 1132.0 | ▁▁▇▁▁ | 1132.0 | 83.73 |
| lab_Hb_NS_med | 1 | 0.5 | 11.10 | NA | 11.1 | 11.10 | 11.10 | 11.10 | 11.1 | ▁▁▇▁▁ | 11.1 | 0.82 |
| lab_Hb_NS_Q1 | 1 | 0.5 | 10.50 | NA | 10.5 | 10.50 | 10.50 | 10.50 | 10.5 | ▁▁▇▁▁ | 10.5 | 0.78 |
| lab_Hb_NS_Q3 | 1 | 0.5 | 11.90 | NA | 11.9 | 11.90 | 11.90 | 11.90 | 11.9 | ▁▁▇▁▁ | 11.9 | 0.88 |
| lab_WBC_NS_n | 1 | 0.5 | 1132.00 | NA | 1132.0 | 1132.00 | 1132.00 | 1132.00 | 1132.0 | ▁▁▇▁▁ | 1132.0 | 83.73 |
| lab_WBC_NS_med | 1 | 0.5 | 13400.00 | NA | 13400.0 | 13400.00 | 13400.00 | 13400.00 | 13400.0 | ▁▁▇▁▁ | 13400.0 | 991.12 |
| lab_WBC_NS_Q1 | 1 | 0.5 | 10500.00 | NA | 10500.0 | 10500.00 | 10500.00 | 10500.00 | 10500.0 | ▁▁▇▁▁ | 10500.0 | 776.63 |
| lab_WBC_NS_Q3 | 1 | 0.5 | 17300.00 | NA | 17300.0 | 17300.00 | 17300.00 | 17300.00 | 17300.0 | ▁▁▇▁▁ | 17300.0 | 1279.59 |
| lab_neutro_NS_n | 1 | 0.5 | 1132.00 | NA | 1132.0 | 1132.00 | 1132.00 | 1132.00 | 1132.0 | ▁▁▇▁▁ | 1132.0 | 83.73 |
| lab_neutro_NS_med | 1 | 0.5 | 7200.00 | NA | 7200.0 | 7200.00 | 7200.00 | 7200.00 | 7200.0 | ▁▁▇▁▁ | 7200.0 | 532.54 |
| lab_neutro_NS_Q1 | 1 | 0.5 | 5100.00 | NA | 5100.0 | 5100.00 | 5100.00 | 5100.00 | 5100.0 | ▁▁▇▁▁ | 5100.0 | 377.22 |
| lab_neutro_NS_Q3 | 1 | 0.5 | 9900.00 | NA | 9900.0 | 9900.00 | 9900.00 | 9900.00 | 9900.0 | ▁▁▇▁▁ | 9900.0 | 732.25 |
| lab_lympho_NS_n | 0 | 1.0 | 676.00 | 644.88 | 220.0 | 448.00 | 676.00 | 904.00 | 1132.0 | ▇▁▁▁▇ | 1352.0 | 100.00 |
| lab_lympho_NS_med | 0 | 1.0 | 2940.00 | 197.99 | 2800.0 | 2870.00 | 2940.00 | 3010.00 | 3080.0 | ▇▁▁▁▇ | 5880.0 | 434.91 |
| lab_lympho_NS_Q1 | 0 | 1.0 | 1680.00 | 254.56 | 1500.0 | 1590.00 | 1680.00 | 1770.00 | 1860.0 | ▇▁▁▁▇ | 3360.0 | 248.52 |
| lab_lympho_NS_Q3 | 0 | 1.0 | 4585.00 | 261.63 | 4400.0 | 4492.50 | 4585.00 | 4677.50 | 4770.0 | ▇▁▁▁▇ | 9170.0 | 678.25 |
| lab_platelet_NS_n | 0 | 1.0 | 676.00 | 644.88 | 220.0 | 448.00 | 676.00 | 904.00 | 1132.0 | ▇▁▁▁▇ | 1352.0 | 100.00 |
| lab_platelet_NS_med | 0 | 1.0 | 374000.00 | 12727.92 | 365000.0 | 369500.00 | 374000.00 | 378500.00 | 383000.0 | ▇▁▁▁▇ | 748000.0 | 55325.44 |
| lab_platelet_NS_Q1 | 0 | 1.0 | 288500.00 | 707.11 | 288000.0 | 288250.00 | 288500.00 | 288750.00 | 289000.0 | ▇▁▁▁▇ | 577000.0 | 42677.51 |
| lab_platelet_NS_Q3 | 0 | 1.0 | 476500.00 | 20506.10 | 462000.0 | 469250.00 | 476500.00 | 483750.00 | 491000.0 | ▇▁▁▁▇ | 953000.0 | 70488.17 |
| lab_sodium_NS_n | 1 | 0.5 | 220.00 | NA | 220.0 | 220.00 | 220.00 | 220.00 | 220.0 | ▁▁▇▁▁ | 220.0 | 16.27 |
| lab_sodium_NS_med | 1 | 0.5 | 135.00 | NA | 135.0 | 135.00 | 135.00 | 135.00 | 135.0 | ▁▁▇▁▁ | 135.0 | 9.99 |
| lab_sodium_NS_Q1 | 1 | 0.5 | 134.00 | NA | 134.0 | 134.00 | 134.00 | 134.00 | 134.0 | ▁▁▇▁▁ | 134.0 | 9.91 |
| lab_sodium_NS_Q3 | 1 | 0.5 | 137.00 | NA | 137.0 | 137.00 | 137.00 | 137.00 | 137.0 | ▁▁▇▁▁ | 137.0 | 10.13 |
| lab_ferritin_NS_n | 1 | 0.5 | 1132.00 | NA | 1132.0 | 1132.00 | 1132.00 | 1132.00 | 1132.0 | ▁▁▇▁▁ | 1132.0 | 83.73 |
| lab_ferritin_NS_med | 1 | 0.5 | 200.00 | NA | 200.0 | 200.00 | 200.00 | 200.00 | 200.0 | ▁▁▇▁▁ | 200.0 | 14.79 |
| lab_ferritin_NS_Q1 | 1 | 0.5 | 143.00 | NA | 143.0 | 143.00 | 143.00 | 143.00 | 143.0 | ▁▁▇▁▁ | 143.0 | 10.58 |
| lab_ferritin_NS_Q3 | 1 | 0.5 | 243.00 | NA | 243.0 | 243.00 | 243.00 | 243.00 | 243.0 | ▁▁▇▁▁ | 243.0 | 17.97 |
| lab_ALT_NS_n | 1 | 0.5 | 1132.00 | NA | 1132.0 | 1132.00 | 1132.00 | 1132.00 | 1132.0 | ▁▁▇▁▁ | 1132.0 | 83.73 |
| lab_ALT_NS_median | 1 | 0.5 | 42.00 | NA | 42.0 | 42.00 | 42.00 | 42.00 | 42.0 | ▁▁▇▁▁ | 42.0 | 3.11 |
| lab_ALT_NS_Q1 | 1 | 0.5 | 24.00 | NA | 24.0 | 24.00 | 24.00 | 24.00 | 24.0 | ▁▁▇▁▁ | 24.0 | 1.78 |
| lab_ALT_NS_Q3 | 1 | 0.5 | 112.00 | NA | 112.0 | 112.00 | 112.00 | 112.00 | 112.0 | ▁▁▇▁▁ | 112.0 | 8.28 |
| lab_albumin_NS_n | 0 | 1.0 | 676.00 | 644.88 | 220.0 | 448.00 | 676.00 | 904.00 | 1132.0 | ▇▁▁▁▇ | 1352.0 | 100.00 |
| lab_albumin_NS_med | 0 | 1.0 | 31.50 | 9.19 | 25.0 | 28.25 | 31.50 | 34.75 | 38.0 | ▇▁▁▁▇ | 63.0 | 4.66 |
| lab_albumin_NS_Q1 | 0 | 1.0 | 28.50 | 9.19 | 22.0 | 25.25 | 28.50 | 31.75 | 35.0 | ▇▁▁▁▇ | 57.0 | 4.22 |
| lab_albumin_NS_Q3 | 0 | 1.0 | 34.50 | 9.19 | 28.0 | 31.25 | 34.50 | 37.75 | 41.0 | ▇▁▁▁▇ | 69.0 | 5.10 |
| lab_Ddim_NS_n | 1 | 0.5 | 1132.00 | NA | 1132.0 | 1132.00 | 1132.00 | 1132.00 | 1132.0 | ▁▁▇▁▁ | 1132.0 | 83.73 |
| lab_Ddim_NS_med | 1 | 0.5 | 1650.00 | NA | 1650.0 | 1650.00 | 1650.00 | 1650.00 | 1650.0 | ▁▁▇▁▁ | 1650.0 | 122.04 |
| lab_Ddim_NS_Q1 | 1 | 0.5 | 970.00 | NA | 970.0 | 970.00 | 970.00 | 970.00 | 970.0 | ▁▁▇▁▁ | 970.0 | 71.75 |
| lab_Ddim_NS_Q3 | 1 | 0.5 | 2660.00 | NA | 2660.0 | 2660.00 | 2660.00 | 2660.00 | 2660.0 | ▁▁▇▁▁ | 2660.0 | 196.75 |
| lab_troponin_NS_n | 1 | 0.5 | 1132.00 | NA | 1132.0 | 1132.00 | 1132.00 | 1132.00 | 1132.0 | ▁▁▇▁▁ | 1132.0 | 83.73 |
| lab_troponin_NS_med | 1 | 0.5 | 10.00 | NA | 10.0 | 10.00 | 10.00 | 10.00 | 10.0 | ▁▁▇▁▁ | 10.0 | 0.74 |
| lab_troponin_NS_Q1 | 1 | 0.5 | 10.00 | NA | 10.0 | 10.00 | 10.00 | 10.00 | 10.0 | ▁▁▇▁▁ | 10.0 | 0.74 |
| lab_troponin_NS_Q3 | 1 | 0.5 | 20.00 | NA | 20.0 | 20.00 | 20.00 | 20.00 | 20.0 | ▁▁▇▁▁ | 20.0 | 1.48 |
| lab_NTproBNP_NS_n | 1 | 0.5 | 1132.00 | NA | 1132.0 | 1132.00 | 1132.00 | 1132.00 | 1132.0 | ▁▁▇▁▁ | 1132.0 | 83.73 |
| lab_NTproBNP_NS_med | 1 | 0.5 | 41.00 | NA | 41.0 | 41.00 | 41.00 | 41.00 | 41.0 | ▁▁▇▁▁ | 41.0 | 3.03 |
| lab_NTproBNP_NS_Q1 | 1 | 0.5 | 12.00 | NA | 12.0 | 12.00 | 12.00 | 12.00 | 12.0 | ▁▁▇▁▁ | 12.0 | 0.89 |
| lab_NTproBNP_NS_Q3 | 1 | 0.5 | 102.00 | NA | 102.0 | 102.00 | 102.00 | 102.00 | 102.0 | ▁▁▇▁▁ | 102.0 | 7.54 |
| lab_CRP_NS_n | 0 | 1.0 | 676.00 | 644.88 | 220.0 | 448.00 | 676.00 | 904.00 | 1132.0 | ▇▁▁▁▇ | 1352.0 | 100.00 |
| lab_CRP_NS_med | 0 | 1.0 | 104.50 | 53.03 | 67.0 | 85.75 | 104.50 | 123.25 | 142.0 | ▇▁▁▁▇ | 209.0 | 15.46 |
| lab_CRP_NS_Q1 | 0 | 1.0 | 67.50 | 38.89 | 40.0 | 53.75 | 67.50 | 81.25 | 95.0 | ▇▁▁▁▇ | 135.0 | 9.99 |
| lab_CRP_NS_Q3 | 0 | 1.0 | 173.50 | 33.23 | 150.0 | 161.75 | 173.50 | 185.25 | 197.0 | ▇▁▁▁▇ | 347.0 | 25.67 |
#var_id_cohort = "outcome_death_n"
#var_id_single = "outcome_death"
#var_id = "deaths"
makeBarplot("outcome_death_n", "outcome_death", "deaths")n_cohort <- df_cohort %>% select(tot_cases_n) %>% sum()
var_cohort <- df_cohort %>% select(contains("sex"))
var_cohort <- colSums(var_cohort, na.rm = TRUE)
var_cohort <- var_cohort/sum(df_cohort$tot_cases_n)*100
var_cohort["sex_na"] <- (100 - var_cohort["sex_m"] - var_cohort["sex_f"])
var_control <- df_cohort_controls %>% filter(cohort_id == "Pouletty - control") %>% select(contains("sex"))
var_control <- colSums(var_control, na.rm = TRUE)
var_control <- var_control/sum(df_cohort_controls %>% filter(cohort_id == "Pouletty - control") %>% select(tot_cases_n))*100
var_control["sex_na"] <- (100 - var_control["sex_m"] - var_control["sex_f"])
n_single <- df_singlecases %>% nrow()
var_single <- df_singlecases %>% select(contains("sex"))
var_single$sex_m <- ifelse(var_single$sex == "M", TRUE, FALSE)
var_single$sex_f <- ifelse(var_single$sex == "F", TRUE, FALSE)
cols <- sapply(var_single, is.logical)
var_single[,cols] <- lapply(var_single[,cols], as.numeric)
var_single <- colSums(var_single %>% select(-sex), na.rm = TRUE)
var_single <- var_single/nrow(df_singlecases)*100
var_single["sex_na"] <- (100 - var_single["sex_m"] - var_single["sex_f"])
bar_df_prct <- data.frame(
x = c("males", "females", "missing", "males", "females", "missing", "males", "females", "missing"),
vals = c(var_single, var_cohort, var_control),
col = c(rep("single", length(var_single)), rep("cohorts", length(var_cohort)), rep("histor ctrl", length(var_control))
))
p_prct <- ggplot(bar_df_prct, aes(x = col, y = vals, fill = x)) +
geom_bar(stat = "identity", position = "stack") +
theme_bw() +
labs(title = "Male/female distribution in dataset", subtitle = "Prct", x = "sex", y = "%", col = " ") + lims(y = c(0,100)) + theme(axis.text.x=element_text(angle=90, hjust=1))+
scale_fill_manual(values = wes_palette("Royal1"))
p_prctvar_cohort <- df_cohort %>% select(contains("sex") | ("cohort_id") | "tot_cases_n")
sex_f <- var_cohort %>% group_by(cohort_id) %>% summarize(prct = sex_f/tot_cases_n) %>% mutate(sex = "female")
sex_m <- var_cohort %>% group_by(cohort_id) %>% summarize(prct = sex_m/tot_cases_n) %>% mutate(sex = "male")
sex_all <- rbind(sex_f, sex_m)
p_sex_cohort <- ggplot(sex_all, aes(y = cohort_id, x = prct, fill = sex)) +
geom_bar(stat = "identity", position = "fill") +
theme_bw() + labs(x = "") +
scale_fill_manual(values = wes_palette("Royal1"))
var_controls <- df_cohort_controls %>% filter(cohort_id == "Pouletty - control") %>% select(contains("sex") | ("cohort_id") | "tot_cases_n")
sex_f <- var_controls %>% group_by(cohort_id) %>% summarize(prct = sex_f/tot_cases_n) %>% mutate(sex = "female")
sex_m <- var_controls %>% group_by(cohort_id) %>% summarize(prct = sex_m/tot_cases_n) %>% mutate(sex = "male")
sex_all <- rbind(sex_f, sex_m)
p_sex_controls <- ggplot(sex_all, aes(y = cohort_id, x = prct, fill = sex)) +
geom_bar(stat = "identity", position = "fill") +
theme_bw() + labs(x = "") +
scale_fill_manual(values = wes_palette("Royal1"))
n_single <- df_singlecases %>% nrow()
var_single <- df_singlecases %>% select(contains("sex"))
var_single$sex_m <- ifelse(var_single$sex == "M", TRUE, FALSE)
var_single$sex_f <- ifelse(var_single$sex == "F", TRUE, FALSE)
cols <- sapply(var_single, is.logical)
var_single[,cols] <- lapply(var_single[,cols], as.numeric)
var_single <- colSums(var_single %>% select(-sex), na.rm = TRUE)
var_single <- var_single/nrow(df_singlecases)*100
sex_single <- data.frame(cohort_id = "single_cases", prct = c(var_single["sex_m"], var_single["sex_f"]), sex = c("male", "female"))
p_sex_single <- ggplot(sex_single, aes(y = cohort_id, x = prct, fill = sex)) +
geom_bar(stat = "identity", position = "fill") +
theme_bw() +
scale_fill_manual(values = wes_palette("Royal1"))
a <- plot_grid(p_sex_cohort, p_sex_controls, p_sex_single, align = "v", nrow = 3, rel_heights = c(5/7, 1/7, 1/7))
acohort_age <- df_cohort_controls %>% select(contains("cohort_id") | contains("age") | contains("cohort_type") | contains("tot_cases_n"))
cohort_age$cohort_id <- paste0(cohort_age$cohort_id, " (n = ", cohort_age$tot_cases_n,")")
cohort_age$age_med_yrs <- as.numeric(cohort_age$age_med_yrs )
cohort_age$age_Q1_yrs <- as.numeric(cohort_age$age_Q1_yrs)
cohort_age$age_Q3_yrs <- as.numeric(cohort_age$age_Q3_yrs)
cohort_age$age_min_yrs <- as.numeric(cohort_age$age_min_yrs)
cohort_age$age_max_yrs <- as.numeric(cohort_age$age_max_yrs)
cohort_age$data_descr <- ifelse(!is.na(cohort_age$age_Q1_yrs) & is.na(cohort_age$age_min_yrs) , "IQR",
ifelse(is.na(cohort_age$age_Q1_yrs) & !is.na(cohort_age$age_min_yrs), "range",
ifelse(!is.na(cohort_age$age_Q1_yrs) & !is.na(cohort_age$age_min_yrs), "both", "none")))
p_age_cohort <- ggplot(cohort_age %>% filter(cohort_type == "covid"), aes(y = cohort_id, x = age_med_yrs, col = data_descr)) +
geom_point(size = 4) +
geom_errorbar(aes(xmin=age_Q1_yrs, xmax=age_Q3_yrs), width=.8, position=position_dodge(.9)) +
geom_errorbar(aes(xmin=age_min_yrs, xmax=age_max_yrs), width=.2, position=position_dodge(.9)) +
theme_bw() + lims(x = c(0,21)) +
labs(y = "cohort", x = "", col = "bars") + theme(legend.position="top")+
scale_color_manual(values = c(wes_palette("BottleRocket2")[1:3], wes_palette("BottleRocket1")[2]))
p_age_controls <- ggplot(cohort_age %>% filter(cohort_type != "covid"), aes(y = cohort_id, x = age_med_yrs, col = data_descr)) +
geom_point(size = 4) +
geom_errorbar(aes(xmin=age_Q1_yrs, xmax=age_Q3_yrs), width=.2, position=position_dodge(.9)) +
geom_errorbar(aes(xmin=age_min_yrs, xmax=age_max_yrs), width=.2, position=position_dodge(.9)) +
theme_bw() + lims(x = c(0,21)) +
labs(y = "cohort", x = "", col = "bars") + theme(legend.position="none")+
scale_color_manual(values = wes_palette("BottleRocket2")[2])
p_age_single <- ggplot(df_singlecases, aes(x = as.numeric(age), y = paste0("single cases (n = ", n_single,")"))) +
geom_violin(fill = wes_palette("Darjeeling2")[4]) +
geom_boxplot(width=.3, fill = wes_palette("Darjeeling2")[1]) +
theme_bw() + geom_beeswarm(groupOnX=FALSE, alpha = 0.5) + lims(x = c(0,21)) +
labs(y = "cohort", x = "Age (years)")
a <- plot_grid(p_age_cohort, p_age_controls, p_age_single, align = "v", nrow = 3, rel_heights = c(2/3, 1/5, 1/3))
amakeUpsetR <- function(input_df){
var_single <- input_df
cols <- sapply(var_single, is.logical)
var_single[,cols] <- lapply(var_single[,cols], as.numeric)
var_single_upsetr <- var_single
var_single_upsetr[is.na(var_single_upsetr)] <- 0
var_single_upsetr <- as.data.frame(var_single_upsetr)
for(i in 1:ncol(var_single_upsetr)){ var_single_upsetr[ , i] <- as.integer(var_single_upsetr[ , i]) }
upset(var_single_upsetr, sets = c(colnames(var_single_upsetr)), sets.bar.color = "#56B4E9",
order.by = "freq", keep.order = TRUE)#, empty.intersections = "on", keep.order = FALSE)
}
makeUpsetR(df_singlecases %>% select(contains( "symp")) %>% select(contains("any")))barSymp <- function(colname_chort, colname_single, exclude_single = NULL, plottitle){
var_cohort <- df_cohort %>%
select(contains("cohort_id") | contains("tot_cases_n") | (contains(colname_chort) & contains("_n")))
var_cohort <- var_cohort %>%
gather(variable, value, 3:ncol(var_cohort)) %>%
drop_na(value) %>% group_by(variable) %>%
summarize(prct = sum(value)/sum(tot_cases_n)*100)
var_cohort <- setNames(var_cohort$prct, var_cohort$variable)
names(var_cohort) <- sub("_n", "", names(var_cohort))
n_single <- df_singlecases %>% nrow()
if (!is.null(exclude_single)){
var_single <- df_singlecases %>% select(-contains(exclude_single))
var_single <- var_single %>% select(contains(colname_single))
} else
{
var_single <- df_singlecases %>% select(contains(colname_single))
}
#%>% select(-contains("any"))
cols <- sapply(var_single, is.logical)
var_single[,cols] <- lapply(var_single[,cols], as.numeric)
var_single <- colSums(var_single, na.rm = TRUE)
var_single <- var_single/nrow(df_singlecases)*100
bar_df_prct <- data.frame(
x = c(names(var_single), names(var_cohort)),
vals = c(var_single, var_cohort),
col = c(rep("single", length(var_single)), rep("cohorts", length(var_cohort)))
)
p_prct <- ggplot(bar_df_prct, aes(x = x, y = vals, fill = col)) +
geom_bar(stat = "identity", position = "dodge") +
theme_bw() +
labs(title = plottitle,
subtitle = "Percent of group", x = "treatment", y = "%", col = " ") +
theme(axis.text.x=element_text(angle=90, hjust=1))+
scale_fill_manual(values = wes_palette("Royal1"))
p_prct
}
makeHeatmap_cohort("symp_resp", "symp_resp", plottitle = "Cases with respiratory symptoms, per cohort")# var_cohort <- df_cohort %>% select(("cohort_id") | "tot_cases_n" |( contains("symp_resp") & contains("n")))
#
# resp_symp_cohort <- var_cohort %>%
# gather(variable, value, 3:ncol(var_cohort)) %>% group_by(cohort_id, variable) %>% summarize(prct = value/tot_cases_n)
#
# ggplot(resp_symp_cohort, aes(x = prct, y = cohort_id, col = variable)) + geom_point()var_cohort <- df_cohort %>% select(("cohort_id" | "tot_cases_n") | ( contains("covid") & contains("_n") & (contains("pos") | contains("closecont") | contains("any"))))
var_cohort$cohort_id <- paste0(var_cohort$cohort_id, " (n = ", as.character(var_cohort$tot_cases_n),")")
var_cohort <- var_cohort %>%
gather(variable, value, 3:ncol(var_cohort)) %>% group_by(cohort_id, variable) %>% summarize(prct = value/tot_cases_n*100)
var_cohort$variable <- sub("n_", "", var_cohort$variable)
var_single <- df_singlecases %>% select(contains("covid"))
cols <- sapply(var_single, is.logical)
var_single[,cols] <- lapply(var_single[,cols], as.numeric)
var_single <- colSums(var_single, na.rm = TRUE)
var_single <- var_single/nrow(df_singlecases)*100
var_single <- as.data.frame(var_single) %>% rownames_to_column()
var_single$cohort_id <- "single_cases"
colnames(var_single) <- c("variable", "prct", "cohort_id")
missing <- setdiff(var_single$variable, var_cohort$variable)
if (length(missing) != 0 ){
missing_df <- data.frame(variable = missing, prct = rep(NA, length(missing)), cohort_id = rep(unique(var_cohort$cohort_id), length(missing)))
var_cohort <- bind_rows(var_cohort, as_tibble(missing_df))
}
missing <- setdiff(var_cohort$variable, var_single$variable)
if (length(missing) != 0) {
if (length(missing) != 0){
data.frame(variable = missing, prct = rep(NA, length(missing)), cohort_id = rep(unique(var_single$cohort_id), length(missing)))
var_single <- bind_rows(var_single, as_tibble(missing_df))
}
}
hm_cohort <- ggplot(var_cohort, aes(x = variable, y = cohort_id, fill = prct)) +
geom_tile() + theme_classic() +
theme(axis.text.x=element_blank(), axis.ticks.x=element_blank(), axis.line=element_blank())+
scale_fill_gradient(low = "yellow", high="red", na.value = "lightgray", limits = c(0,100)) +
labs(x = "", y = "cohort", title = "COVID symptoms, per cohort") +
geom_text(aes(label=round(prct, 2)), size = 3, color = "black")
hm_single <- ggplot(var_single, aes(x = variable, y = cohort_id, fill = prct)) +
geom_tile() + theme_classic() +
theme(axis.text.x=element_text(angle=90, hjust=1), axis.line=element_blank())+
scale_fill_gradient(low = "yellow", high = "red", na.value = "lightgray", limits = c(0,100))+ labs(y = "cohort") +
geom_text(aes(label=round(prct, 2)), size = 3, color = "black")
plot_grid(hm_cohort, hm_single, align = "v", nrow = 2, rel_heights = c(1/2, 1/2))var_cohort <- df_cohort %>%
select(contains("cohort_id") | contains("tot_cases_n") | contains("covid") & contains("_n") & (contains("_pos") | contains("close")))
covid_cohort <- var_cohort %>%
gather(variable, value, 3:ncol(var_cohort)) %>%
drop_na(value) %>% group_by(variable) %>%
summarize(prct = sum(value)/sum(tot_cases_n)*100)
covid_cohort <- setNames(covid_cohort$prct, covid_cohort$variable)
n_single <- df_singlecases %>% nrow()
var_single <- df_singlecases %>% select(contains("covid"))
cols <- sapply(var_single, is.logical)
var_single[,cols] <- lapply(var_single[,cols], as.numeric)
makeUpsetR(df_singlecases %>% select(contains("covid")) %>% select(-contains("covid_IgM_pos")) %>% select(-contains("covid_IgA_pos")) %>% select(-contains("covid_IgG_pos")) %>% select(-contains("covid_sero_pos")) )var_single <- colSums(var_single, na.rm = TRUE)
var_single <- var_single/nrow(df_singlecases)*100
bar_df_prct <- data.frame(
x = c("close contact reported", "PCR +", "stool +","PCR or stool or sero +", "any serology +", "sero + further NS", "IgA +", "IgM +", "IgG +", "close contact reported", "IgA +", "IgG +", "IgM +", "PCR +", "sero + further NS", "stool +"),
vals = c(var_single, covid_cohort),
col = c(rep("single", length(var_single)), rep("cohorts", length(covid_cohort)))
)
p_prct <- ggplot(bar_df_prct, aes(x = x, y = vals, fill = col)) +
geom_bar(stat = "identity", position = "dodge") +
theme_bw() +
labs(title = "SARS-CoV2 testing",
subtitle = "Prct", x = "variable", y = "%", col = " ") +
theme(axis.text.x=element_text(angle=90, hjust=1)) +
scale_fill_manual(values = wes_palette("Royal1"))
#p_prct
neither_PCR_Ig <- nrow(df_singlecases %>% filter((covid_sero_any == FALSE | is.na(covid_sero_any)) & (covid_PCR_pos == FALSE | is.na(covid_PCR_pos)) & (covid_PCR_stool_pos == FALSE | is.na(covid_PCR_stool_pos))))
neither_PCR_Ig_closecontact <-
nrow(df_singlecases %>% filter((covid_sero_any == FALSE |
is.na(covid_sero_any)) &
(covid_PCR_pos == FALSE |
is.na(covid_PCR_pos)) &
(covid_PCR_stool_pos == FALSE |
is.na(covid_PCR_stool_pos)) &
(covid_closecontact == FALSE | is.na(covid_closecontact))
))
print(paste0("Cases with neither PCR nor serology: ", neither_PCR_Ig))## [1] "Cases with neither PCR nor serology: 13"
print(paste0("Cases with neither PCR nor serology nor closecontact: ", neither_PCR_Ig_closecontact))## [1] "Cases with neither PCR nor serology nor closecontact: 9"
For lab values, sometimes multiple values are reported (baseline, peak or not-specified). All lab values are collapsed based on the max (or the min for e.g. hemoglobin): so only the highest value of median, Q1 or Q3 is used.
## [1] "Column extracted from cohorts:"
## [1] "lab_CRP_baseline_n" "lab_CRP_baseline_med" "lab_CRP_baseline_Q1"
## [4] "lab_CRP_baseline_Q3" "lab_CRP_peak_n" "lab_CRP_peak_med"
## [7] "lab_CRP_peak_Q1" "lab_CRP_peak_Q3" "lab_CRP_NS_n"
## [10] "lab_CRP_NS_med" "lab_CRP_NS_Q1" "lab_CRP_NS_Q3"
## [13] "cohort_id" "cohort_type" "tot_cases_n"
## [1] "Column extracted from single cases:"
## [1] "lab_CRP_admis" "lab_CRP_NS" "lab_CRP_peak"
crp_missing <- sum(is.na(crp_collapse_single$CRP_max))
p_crp_cohort <- ggplot(crp_collapse_cohort, aes(y = cohort_id, x = CRP_med, col = cohort_type)) +
geom_point() +
geom_errorbar(aes(xmin=CRP_min, xmax=CRP_max), width=.2, position=position_dodge(.9)) + lims(x = c(0,600)) +
theme_bw() + labs(title = "CRP", y = "cohort", x = "") +
geom_vline(xintercept = co_CRP, linetype = "dashed", color = "black") + theme(legend.justification = c(1, 1), legend.position = c(0.98, 0.98), legend.title=element_blank()) +
scale_color_manual(values = wes_palette("Royal1"))
p_crp_single <- ggplot(crp_collapse_single, aes(x = as.numeric(CRP_max), y = cohort_id)) +
geom_violin(fill = wes_palette("Darjeeling2")[4]) +
geom_boxplot(width=.3, fill = wes_palette("Darjeeling2")[1]) +
theme_bw() + geom_beeswarm(groupOnX=FALSE, alpha = 0.5) + lims(x = c(0,600)) + labs(y = "", x = "CRP (mg/dL)", subtitle = paste0("missing data for ", crp_missing, " cases")) +
geom_hline(yintercept = co_CRP, linetype = "dashed", color = "black")
CRP_grid <- plot_grid(p_crp_cohort, p_crp_single, align = "v", nrow = 2, rel_heights = c(2/3, 1/3))
CRP_grid## [1] "Column extracted from cohorts:"
## [1] "lab_lympho_NS_n" "lab_lympho_NS_med"
## [3] "lab_lympho_NS_Q1" "lab_lympho_NS_Q3"
## [5] "lab_lympho_baseline_n" "lab_lympho_baseline_med"
## [7] "cohort_id" "cohort_type"
## [9] "tot_cases_n"
## [1] "Column extracted from single cases:"
## [1] "lab_lymphocytes_lowest"
lympho_missing <- sum(is.na(lympho_collapse_single$lympho_min))
p_lympho_cohort <- ggplot(lympho_collapse_cohort, aes(y = cohort_id, x = lympho_med, col = cohort_type)) +
geom_point() +
geom_errorbar(aes(xmin=lympho_min, xmax=lympho_max), width=.2, position=position_dodge(.9)) +
theme_bw() + labs(title = "lymphocytes", y = "", x = "") + lims(x = c(0,7500)) +
geom_vline(xintercept = co_lympho, linetype = "dashed", color = "black") + theme(legend.justification = c(1, 1), legend.position = c(0.98, 0.98), legend.title=element_blank()) +
scale_color_manual(values = wes_palette("Royal1"))#+
#rremove("y.text")
p_lympho_single <- ggplot(lympho_collapse_single, aes(x = as.numeric(lympho_min), y = cohort_id)) +
geom_violin(fill = wes_palette("Darjeeling2")[4]) +
geom_boxplot(width=.3, fill = wes_palette("Darjeeling2")[1]) +
lims(x = c(0,7500))+
theme_bw() + geom_beeswarm(groupOnX=FALSE, alpha = 0.5) + labs(y = "", x = "Lymphocytes (/µL)", subtitle = paste0("missing data for ", lympho_missing, " cases")) +
geom_vline(xintercept = co_lympho, linetype = "dashed", color = "black") #+
#rremove("y.text")
lympho_grid <- plot_grid(p_lympho_cohort, p_lympho_single, align = "v", nrow = 2, rel_heights = c(2/3, 1/3))
lympho_grid## [1] "Column extracted from cohorts:"
## [1] "lab_WBC_NS_n" "lab_WBC_NS_med" "lab_WBC_NS_Q1"
## [4] "lab_WBC_NS_Q3" "lab_WBC_baseline_n" "lab_WBC_baseline_med"
## [7] "cohort_id" "cohort_type" "tot_cases_n"
## [1] "Column extracted from single cases:"
## [1] "lab_WBC_highest"
wbc_missing <- sum(is.na(wbc_collapse_single$WBC_max))
p_wbc_cohort <- ggplot(wbc_collapse_cohort, aes(y = cohort_id, x = WBC_med, col = cohort_type)) +
geom_point() +
geom_errorbar(aes(xmin=WBC_min, xmax=WBC_max), width=.2, position=position_dodge(.9)) + lims(x = c(0,50000)) +
theme_bw() + labs(title = "WBC", y = "cohort", x = "") +
geom_vline(xintercept = co_WBC, linetype = "dashed", color = "black") + theme(legend.justification = c(1, 1), legend.position = c(0.98, 0.98), legend.title=element_blank()) +
scale_color_manual(values = wes_palette("Royal1"))
p_wbc_single <- ggplot(wbc_collapse_single, aes(x = as.numeric(WBC_max), y = cohort_id)) +
geom_violin(fill = wes_palette("Darjeeling2")[4]) +
geom_boxplot(width=.3, fill = wes_palette("Darjeeling2")[1]) +
theme_bw() + geom_beeswarm(groupOnX=FALSE, alpha = 0.5) + labs(y = "", x = "WBC (/µL)", subtitle = paste0("missing data for ", wbc_missing, " cases")) + lims(x = c(0,50000)) +
geom_vline(xintercept = co_WBC, linetype = "dashed", color = "black")
WBC_grid <- plot_grid(p_wbc_cohort, p_wbc_single, align = "v", nrow = 2, rel_heights = c(2/3, 1/3))
WBC_grid## [1] "Column extracted from cohorts:"
## [1] "lab_ferritin_NS_n" "lab_ferritin_NS_med"
## [3] "lab_ferritin_NS_Q1" "lab_ferritin_NS_Q3"
## [5] "lab_ferritin_baseline_n" "lab_ferritin_baseline_med"
## [7] "lab_ferritin_peak_n" "lab_ferritin_peak_med"
## [9] "lab_ferritin_peak_Q1" "lab_ferritin_peak_Q3"
## [11] "cohort_id" "cohort_type"
## [13] "tot_cases_n"
## [1] "Column extracted from single cases:"
## [1] "lab_ferritin_NS" "lab_ferritin_admis" "lab_ferritin_peak"
ferritin_missing <- sum(is.na(ferritin_collapse_single$ferrit_max))
p_ferritin_cohort <- ggplot(ferritin_collapse_cohort, aes(y = cohort_id, x = ferrit_med, col = cohort_type)) +
geom_point() +
geom_errorbar(aes(xmin=ferrit_min, xmax=ferrit_max), width=.2, position=position_dodge(.9)) + lims(x = c(0,11000)) +
theme_bw() + labs(title = "Ferritin", y = "cohort", x = "") +
geom_vline(xintercept = co_ferritin, linetype = "dashed", color = "black") + theme(legend.justification = c(1, 1), legend.position = c(0.98, 0.98), legend.title=element_blank()) +
scale_color_manual(values = wes_palette("Royal1"))
p_ferritin_single <- ggplot(ferritin_collapse_single, aes(x = as.numeric(ferrit_max), y = cohort_id)) +
geom_violin(fill = wes_palette("Darjeeling2")[4]) +
geom_boxplot(width=.3, fill = wes_palette("Darjeeling2")[1]) +
theme_bw() + geom_beeswarm(groupOnX=FALSE, alpha = 0.5) + labs(y = "", x = "Ferritin (µg/l)", subtitle = paste0("missing data for ", ferritin_missing, " cases")) + lims(x = c(0,11000)) +
geom_vline(xintercept = co_ferritin, linetype = "dashed", color = "black")
ferritin_grid <- plot_grid(p_ferritin_cohort, p_ferritin_single, align = "v", nrow = 2, rel_heights = c(2/3, 1/3))
ferritin_grid## [1] "Column extracted from cohorts:"
## [1] "lab_troponin_baseline_n" "lab_troponin_baseline_med"
## [3] "lab_troponin_baseline_Q1" "lab_troponin_baseline_Q3"
## [5] "lab_troponin_peak_n" "lab_troponin_peak_med"
## [7] "lab_troponin_peak_Q1" "lab_troponin_peak_Q3"
## [9] "lab_troponin_NS_n" "lab_troponin_NS_med"
## [11] "lab_troponin_NS_Q1" "lab_troponin_NS_Q3"
## [13] "cohort_id" "cohort_type"
## [15] "tot_cases_n"
## [1] "Column extracted from single cases:"
## [1] "lab_troponin_admis" "lab_troponin_max"
troponin_missing <- sum(is.na(troponin_collapse_single$troponin_max))
p_troponin_cohort <- ggplot(troponin_collapse_cohort, aes(y = cohort_id, x = troponin_med, col = cohort_type)) +
geom_point() +
geom_errorbar(aes(xmin=troponin_min, xmax=troponin_max), width=.2, position=position_dodge(.9)) + lims(x = c(0,7000)) +
theme_bw() + labs(title = "Troponin", y = "cohort", x = "") +
geom_vline(xintercept = co_tropo, linetype = "dashed", color = "black") + theme(legend.justification = c(1, 1), legend.position = c(0.98, 0.98), legend.title=element_blank()) +
scale_color_manual(values = wes_palette("Royal1"))
p_troponin_single <- ggplot(troponin_collapse_single, aes(x = as.numeric(troponin_max), y = cohort_id)) +
geom_violin(fill = wes_palette("Darjeeling2")[4]) +
geom_boxplot(width=.3, fill = wes_palette("Darjeeling2")[1]) +
theme_bw() + geom_beeswarm(groupOnX=FALSE, alpha = 0.5) + labs(y = "", x = "Troponin (ng/L)", subtitle = paste0("missing data for ", troponin_missing, " cases")) + lims(x = c(0,7000)) +
geom_vline(xintercept = co_tropo, linetype = "dashed", color = "black")
troponin_grid <- plot_grid(p_troponin_cohort, p_troponin_single, align = "v", nrow = 2, rel_heights = c(2/3, 1/3))
troponin_gridNote: The cases from Pouletty et al are added to the single cases as they report on IL6 values.
## [1] "Column extracted from cohorts:"
## [1] "lab_IL6_baseline_n" "lab_IL6_baseline_med" "lab_IL6_baseline_Q1"
## [4] "lab_IL6_baseline_Q3" "lab_IL6_NS_n" "lab_IL6_NS_med"
## [7] "lab_IL6_NS_Q1" "lab_IL6_NS_Q3" "cohort_id"
## [10] "cohort_type" "tot_cases_n"
## [1] "Column extracted from single cases:"
## [1] "lab_IL6"
IL6_missing <- sum(is.na(IL6_collapse_single$IL6_max))
p_IL6_cohort <- ggplot(IL6_collapse_cohort, aes(y = cohort_id, x = IL6_med)) +
geom_point() +
geom_errorbar(aes(xmin=IL6_min, xmax=IL6_max), width=.2, position=position_dodge(.9)) + lims(x = c(0,2500)) +
theme_bw() + labs(title = "IL6", y = "cohort", x = "") +
geom_vline(xintercept = co_IL6, linetype = "dashed", color = "black") +
scale_color_manual(values = wes_palette("Royal1"))
p_IL6_single <- ggplot(IL6_collapse_single, aes(x = as.numeric(IL6_max), y = cohort_id)) +
geom_violin(fill = wes_palette("Darjeeling2")[4]) +
geom_boxplot(width=.3, fill = wes_palette("Darjeeling2")[1]) +
theme_bw() + geom_beeswarm(groupOnX=FALSE, alpha = 0.5) + labs(y = "", x = "IL6 (pg/ml)", subtitle = paste0("missing data for ", IL6_missing, " cases")) + lims(x = c(0,2500)) +
geom_vline(xintercept = co_IL6, linetype = "dashed", color = "black")
IL6_grid <- plot_grid(p_IL6_cohort, p_IL6_single, align = "v", nrow = 2, rel_heights = c(2/3, 1/3))
IL6_grid## [1] "Column extracted from cohorts:"
## [1] "lab_BNP_baseline_n" "lab_BNP_baseline_med" "lab_BNP_baseline_Q1"
## [4] "lab_BNP_baseline_Q3" "lab_BNP_peak_n" "lab_BNP_peak_med"
## [7] "lab_BNP_peak_Q1" "lab_BNP_peak_Q3" "lab_BNP_NS_n"
## [10] "lab_BNP_NS_med" "lab_BNP_NS_min" "lab_BNP_NS_max"
## [13] "cohort_id" "cohort_type" "tot_cases_n"
## [1] "Column extracted from single cases:"
## [1] "lab_BNP_admis" "lab_BNP_max"
missing <- sum(is.na(collapse_single$`_BNP_max`))
p_BNP_cohort <- ggplot(collapse_cohort, aes(y = cohort_id, x = `_BNP_med`, col = cohort_type)) +
geom_point() +
geom_errorbar(aes(xmin=`_BNP_min`, xmax=`_BNP_max`), width=.2, position=position_dodge(.9)) + lims(x = c(0,20000)) +
theme_bw() + labs(title = "BNP", y = "cohort", x = "") +
geom_vline(xintercept = co_BNP, linetype = "dashed", color = "black") +theme(legend.justification = c(1, 1), legend.position = c(0.98, 0.98)) +
scale_color_manual(values = wes_palette("Royal1"))
p_BNP_single <- ggplot(collapse_single, aes(x = as.numeric(`_BNP_max`), y = cohort_id)) +
geom_violin(fill = wes_palette("Darjeeling2")[4]) +
geom_boxplot(width=.3, fill = wes_palette("Darjeeling2")[1]) +
theme_bw() + geom_beeswarm(groupOnX=FALSE, alpha = 0.5) + labs(y = "", x = "BNP (pg/ml)", subtitle = paste0("missing data for ", missing, " cases")) + lims(x = c(0,20000)) +
geom_vline(xintercept = co_BNP, linetype = "dashed", color = "black")
BNP_grid <- plot_grid(p_BNP_cohort, p_BNP_single, align = "v", nrow = 2, rel_heights = c(2/3, 1/3))
BNP_grid## [1] "Column extracted from cohorts:"
## [1] "lab_NTproBNP_baseline_n" "lab_NTproBNP_baseline_med"
## [3] "lab_NTproBNP_baseline_Q1" "lab_NTproBNP_baseline_Q3"
## [5] "lab_NTproBNP_peak_n" "lab_NTproBNP_peak_med"
## [7] "lab_NTproBNP_peak_Q1" "lab_NTproBNP_peak_Q3"
## [9] "lab_NTproBNP_NS_n" "lab_NTproBNP_NS_med"
## [11] "lab_NTproBNP_NS_Q1" "lab_NTproBNP_NS_Q3"
## [13] "cohort_id" "cohort_type"
## [15] "tot_cases_n"
## [1] "Column extracted from single cases:"
## [1] "lab_NTproBNP"
missing <- sum(is.na(collapse_single$NTproBNP_max))
p_NTproBNP_cohort <- ggplot(collapse_cohort, aes(y = cohort_id, x = NTproBNP_med, col = cohort_type)) +
geom_point() +
geom_errorbar(aes(xmin=NTproBNP_min, xmax=NTproBNP_max), width=.2, position=position_dodge(.9)) + lims(x = c(0,70000)) +
theme_bw() + labs(title = "NTproBNP", y = "cohort", x = "") +
geom_vline(xintercept = co_NTproBNP, linetype = "dashed", color = "black") + theme(legend.justification = c(1, 1), legend.position = c(0.98, 0.98), legend.title=element_blank()) +
scale_color_manual(values = wes_palette("Royal1"))
p_NTproBNP_single <- ggplot(collapse_single, aes(x = as.numeric(NTproBNP_max), y = cohort_id)) +
geom_violin(fill = wes_palette("Darjeeling2")[4]) +
geom_boxplot(width=.3, fill = wes_palette("Darjeeling2")[1]) +
theme_bw() + geom_beeswarm(groupOnX=FALSE, alpha = 0.5) + labs(y = "", x = "NTproBNP (pg/ml)", subtitle = paste0("missing data for ", missing, " cases")) + lims(x = c(0,70000)) +
geom_vline(xintercept = co_NTproBNP, linetype = "dashed", color = "black")
NTproBNP_grid <- plot_grid(p_NTproBNP_cohort, p_NTproBNP_single, align = "v", nrow = 2, rel_heights = c(2/3, 1/3))
NTproBNP_grid## [1] "Column extracted from cohorts:"
## [1] "lab_platelet_NS_n" "lab_platelet_NS_med"
## [3] "lab_platelet_NS_Q1" "lab_platelet_NS_Q3"
## [5] "lab_platelet_baseline_n" "lab_platelet_baseline_med"
## [7] "lab_platelet_lowest_n" "lab_platelet_lowest_med"
## [9] "lab_platelet_lowest_Q1" "lab_platelet_lowest_Q3"
## [11] "cohort_id" "cohort_type"
## [13] "tot_cases_n"
## [1] "Column extracted from single cases:"
## [1] "lab_platelets_NS" "lab_platelets_highest" "lab_platelets_lowest"
missing <- sum(is.na(collapse_single$platelet_min))
p_platelet_cohort <- ggplot(collapse_cohort, aes(y = cohort_id, x = platelet_med, col = cohort_type)) +
geom_point() +
geom_errorbar(aes(xmin=platelet_min, xmax=platelet_max, col=cohort_type), width=.2, position=position_dodge(.9)) + lims(x = c(0,750000)) +
theme_bw() + labs(title = "platelet", y = "cohort", x = "") +
geom_vline(xintercept = co_platelet, linetype = "dashed", color = "black") + theme(legend.justification = c(1, 1), legend.position = c(0.98, 0.98), legend.title=element_blank()) +
scale_color_manual(values = wes_palette("Royal1"))
p_platelet_single <- ggplot(collapse_single, aes(x = as.numeric(platelet_min), y = cohort_id)) +
geom_violin(fill = wes_palette("Darjeeling2")[4]) +
geom_boxplot(width=.3, fill = wes_palette("Darjeeling2")[1]) +
theme_bw() + geom_beeswarm(groupOnX=FALSE, alpha = 0.5) + labs(y = "", x = "Platelets (/µL)", subtitle = paste0("missing data for ", missing, " cases")) + lims(x = c(0,750000)) +
geom_vline(xintercept = co_platelet, linetype = "dashed", color = "black")
platelet_grid <- plot_grid(p_platelet_cohort, p_platelet_single, align = "v", nrow = 2, rel_heights = c(2/3, 1/3))
platelet_grid## [1] "Column extracted from cohorts:"
## [1] "lab_Ddim_baseline_n" "lab_Ddim_baseline_med" "lab_Ddim_baseline_Q1"
## [4] "lab_Ddim_baseline_Q3" "lab_Ddim_NS_n" "lab_Ddim_NS_med"
## [7] "lab_Ddim_NS_Q1" "lab_Ddim_NS_Q3" "lab_Ddim_peak_n"
## [10] "lab_Ddim_peak_med" "lab_Ddim_peak_Q1" "lab_Ddim_peak_Q3"
## [13] "cohort_id" "cohort_type" "tot_cases_n"
## [1] "Column extracted from single cases:"
## [1] "lab_Ddim_NS" "lab_Ddim_peak"
missing <- sum(is.na(collapse_single$Ddim_max))
p_Ddim_cohort <- ggplot(collapse_cohort, aes(y = cohort_id, x = Ddim_med, col = cohort_type)) +
geom_point() +
geom_errorbar(aes(xmin=Ddim_min, xmax=Ddim_max, col=cohort_type), width=.2, position=position_dodge(.9)) + lims(x = c(0,11000)) +
theme_bw() + labs(title = "D-dimers", y = "cohort", x = "") +
geom_vline(xintercept = co_Ddim, linetype = "dashed", color = "black") + theme(legend.justification = c(1, 1), legend.position = c(0.98, 0.98), legend.title=element_blank()) +
scale_color_manual(values = wes_palette("Royal1"))
p_Ddim_single <- ggplot(collapse_single, aes(x = as.numeric(Ddim_max), y = cohort_id)) +
geom_violin(fill = wes_palette("Darjeeling2")[4]) +
geom_boxplot(width=.3, fill = wes_palette("Darjeeling2")[1]) +
theme_bw() + geom_beeswarm(groupOnX=FALSE, alpha = 0.5) + labs(y = "", x = "D-dimers (ng/ml)", subtitle = paste0("missing data for ", missing, " cases")) + lims(x = c(0,11000)) +
geom_vline(xintercept = co_Ddim, linetype = "dashed", color = "black")
Ddim_grid <- plot_grid(p_Ddim_cohort, p_Ddim_single, align = "v", nrow = 2, rel_heights = c(2/3, 1/3))
Ddim_grid## [1] "Column extracted from cohorts:"
## [1] "lab_sodium_NS_n" "lab_sodium_NS_med"
## [3] "lab_sodium_NS_Q1" "lab_sodium_NS_Q3"
## [5] "lab_sodium_baseline_n" "lab_sodium_baseline_med"
## [7] "cohort_id" "cohort_type"
## [9] "tot_cases_n"
## [1] "Column extracted from single cases:"
## [1] "lab_sodium"
missing <- sum(is.na(collapse_single$sodium_min))
p_sodium_cohort <- ggplot(collapse_cohort, aes(y = cohort_id, x = sodium_med, col = cohort_type)) +
geom_point() +
geom_errorbar(aes(xmin=sodium_min, xmax=sodium_max, col=cohort_type), width=.2, position=position_dodge(.9)) + lims(x = c(100,200)) +
theme_bw() + labs(title = "Sodium", y = "cohort", x = "") +
geom_vline(xintercept = co_sodium, linetype = "dashed", color = "black") + theme(legend.justification = c(1, 1), legend.position = c(0.98, 0.98), legend.title=element_blank()) +
scale_color_manual(values = wes_palette("Royal1"))
p_sodium_single <- ggplot(collapse_single, aes(x = as.numeric(sodium_min), y = cohort_id)) +
geom_violin(fill = wes_palette("Darjeeling2")[4]) +
geom_boxplot(width=.3, fill = wes_palette("Darjeeling2")[1]) +
theme_bw() + geom_beeswarm(groupOnX=FALSE, alpha = 0.5) + labs(y = "", x = "Sodium (mmol/L)", subtitle = paste0("missing data for ", missing, " cases")) + lims(x = c(100,200)) +
geom_vline(xintercept = co_sodium, linetype = "dashed", color = "black")
sodium_grid <- plot_grid(p_sodium_cohort, p_sodium_single, align = "v", nrow = 2, rel_heights = c(2/3, 1/3))
sodium_gridCut-offs in this study:
We are unable to evaluate criteria 2.
PIMS_TS_fulfilled <- apply(df_singlecases, 1, function(row) {
# persistent fever, inflammation (neutrophilia, elevated CRP and lymphopaenia)
pat_id <- row["patientID_int"]
fever <- row["symp_fever"] == TRUE
neutrophilia <- as.numeric(row["lab_neutrophils"]) > co_neutrophilia
elevated_CRP <- (as.numeric(row["lab_CRP_admis"]) > co_CRP | as.numeric(row["lab_CRP_NS"]) > co_CRP | as.numeric(row["lab_CRP_peak"]) > co_CRP )
lymphopenia <- as.numeric(row["lab_lymphocytes_lowest"]) < co_lympho
inflamm <- any(fever, neutrophilia, elevated_CRP, lymphopenia)
# lab values
#fibrinogen <- row["lab_fibrino"] > co_fibrino
#Ddimers <- row["lab_Ddim_peak"] > co_Ddim | row["lab_Ddim_NS"] > co_Ddim
#ferritin <- (row["lab_ferritin_NS"] > co_ferritin | row["lab_ferritin_admis"] > co_ferritin | row["lab_ferritin_peak"] > co_ferritin)
#albumin <- row["lab_albumin_admis"] < co_albu | row["lab_albumin_lowest"] < co_albu | row["lab_albumin_NS"] < co_albu
#lab_vals <- any(fibrinogen, Ddimers, ferritin, albumin)
# single or multi-organ dysfunction (shock, cardiac, respiratory, renal, gastrointestinal or neurological disorder)
pneumonia <- row["symp_resp_pneumonia"] == TRUE
resp_failure <- row["symp_resp_failure"] == TRUE
resp <- any(pneumonia, resp_failure)
AKI <- row["symp_renal_AKI"] == TRUE
RRT <- row["critcare_RRT"] == TRUE
renal <- any(AKI, RRT)
myocarditis <- row["symp_cardiovasc_myocard"] == TRUE
pericarditis <- row["symp_cardiovasc_pericard"] == TRUE
LVEF_under30 <- row["symp_cardiovasc_LV_less30"] == TRUE
LVEF_30to55 <- row["symp_cardiovasc_LV_30to55"] == TRUE
BNP <- (as.numeric(row["lab_BNP_admis"]) > co_BNP | as.numeric(row["lab_BNP_max"]) > co_BNP )
NTproBNP <- as.numeric(row["lab_NTproBNP"]) > co_NTproBNP
tropo <- as.numeric(row["lab_troponin_admis"]) > co_tropo
shock <- row["symp_cardiovasc_shock"] == TRUE
cardiovasc <- any(myocarditis, LVEF_under30, LVEF_30to55, NTproBNP, BNP, tropo, shock)
rash <- row["kawasaki_exanthema"] == TRUE
dermato <- any(rash)
organ_dysfunc <- sum(resp, renal, cardiovasc, dermato, na.rm = TRUE) >= 1
criteria_fulfilled <- (inflamm) & organ_dysfunc #&lab_vals
#return(c(pat_id, "criteria1_inflamm" = inflamm, "criteria2_labvals" = lab_vals, "criteria3_organdysfunc" = organ_dysfunc, "criteria_fulfilled" = criteria_fulfilled))
return(c(pat_id, "criteria1_inflamm" = inflamm, "criteria3_organdysfunc" = organ_dysfunc, "criteria_fulfilled" = criteria_fulfilled))
})
PIMS_TS_fulfilled <- PIMS_TS_fulfilled %>% t() %>% as_tibble()
PIMS_TS_fulfilled <- type_convert(PIMS_TS_fulfilled)
PIMS_TS_fulfilled_heatmap <- PIMS_TS_fulfilled
cols <- sapply(PIMS_TS_fulfilled_heatmap, is.logical)
PIMS_TS_fulfilled_heatmap[,cols] <- lapply(PIMS_TS_fulfilled_heatmap[,cols], as.numeric)
PIMS_TS_fulfilled_heatmap_melt <- PIMS_TS_fulfilled_heatmap %>% melt()
PIMS_TS_fulfilled_heatmap_melt[is.na(PIMS_TS_fulfilled_heatmap_melt)] <- 2
skim(PIMS_TS_fulfilled)| Name | PIMS_TS_fulfilled |
| Number of rows | 95 |
| Number of columns | 4 |
| _______________________ | |
| Column type frequency: | |
| character | 1 |
| logical | 3 |
| ________________________ | |
| Group variables | None |
Variable type: character
| skim_variable | n_missing | complete_rate | min | max | empty | n_unique | whitespace |
|---|---|---|---|---|---|---|---|
| patientID_int | 0 | 1 | 9 | 10 | 0 | 95 | 0 |
Variable type: logical
| skim_variable | n_missing | complete_rate | mean | count |
|---|---|---|---|---|
| criteria1_inflamm | 0 | 1 | 1 | TRU: 95 |
| criteria3_organdysfunc | 0 | 1 | 1 | TRU: 95 |
| criteria_fulfilled | 0 | 1 | 1 | TRU: 95 |
Source CDC and UpToDate The case definition for MIS-C is:
CDC_fulfilled <- apply(df_singlecases, 1, function(row) {
# criteria 1
criteria1 = TRUE
# criteria 2
pat_id <- row["patientID_int"]
# fever?
fever <- row["symp_fever"] == TRUE | row["kawasaki_fever"] == TRUE
inflamm <- any(fever)
# lab values evidence for inflammation
neutrophilia <- as.numeric(row["lab_neutrophils"]) > co_neutrophilia
elevated_CRP <- (as.numeric(row["lab_CRP_admis"]) > co_CRP | as.numeric(row["lab_CRP_NS"]) > co_CRP | as.numeric(row["lab_CRP_peak"]) > co_CRP )
lymphopenia <- as.numeric(row["lab_lymphocytes_lowest"]) < co_lympho
fibrinogen <- as.numeric(row["lab_fibrino"]) > co_fibrino
Ddimers <- as.numeric(row["lab_Ddim_peak"]) > co_Ddim | as.numeric(row["lab_Ddim_NS"]) > co_Ddim
ferritin <- (as.numeric(row["lab_ferritin_NS"]) > co_ferritin | as.numeric(row["lab_ferritin_admis"]) > co_ferritin | as.numeric(row["lab_ferritin_peak"]) > co_ferritin)
albumin <- as.numeric(row["lab_albumin_admis"]) < co_albu | as.numeric(row["lab_albumin_lowest"]) < co_albu | as.numeric(row["lab_albumin_NS"]) < co_albu
PCT <- as.numeric(row["lab_PCT_admis"]) > co_PCT | as.numeric(row["lab_PCT_peak"]) > co_PCT | as.numeric(row["lab_PCT_NS"]) > co_PCT
LDH <- as.numeric(row["lab_LDH"]) > co_LDH
IL6 <- as.numeric(row["lab_IL6"]) > co_IL6
ESR <- as.numeric(row["lab_ESR"]) > co_ESR
lab_vals <- any(neutrophilia, elevated_CRP, lymphopenia, fibrinogen, Ddimers, ferritin, albumin, PCT, LDH, IL6, ESR)
# Ilness requiring hospitalisation
## used surrogate parameters for hosp
hosp_ICU <- row["admis_hosp_days"] > 1 | row["admis_ICU_days"] > 1 | row["admis_PICU_admis"] == TRUE
NIV <- row["critcare_NIV"] == TRUE | row["critcare_NIV_days"] > 1
MV <- row["critcare_MV"] == TRUE | row["critcare_MV_days"] > 1
inotrop <- row["critcare_inotrop"] == TRUE | row["critcare_inotrop_days"] > 1
ECMO <- row["critcare_ECMO"] == TRUE
IVIg <- row["rx_IVIg_once"] == TRUE | row["rx_IVIg_multip"] == TRUE
biologicals <- row["rx_anakinra"] == TRUE | row["rx_tocilizumab"] == TRUE | row["rx_infliximab"] == TRUE | row["rx_antibiotics"] == TRUE | row["rx_plasma"] == TRUE | row["rx_remdesivir"] == TRUE
heparin <- row["rx_heparin"] == TRUE
req_hosp <- any(hosp_ICU, NIV, MV, inotrop, ECMO, IVIg, biologicals, heparin)
## multisystem involvement >= 2
## respiratory
pneumonia <- row["symp_resp_pneumonia"] == TRUE
resp_failure <- row["symp_resp_failure"] == TRUE
resp <- any(pneumonia, resp_failure)
AKI <- row["symp_renal_AKI"] == TRUE
RRT <- row["critcare_RRT"] == TRUE
renal <- any(AKI, RRT)
myocarditis <- row["symp_cardiovasc_myocard"] == TRUE
pericarditis <- row["symp_cardiovasc_pericard"] == TRUE
LVEF_under30 <- row["symp_cardiovasc_LV_less30"] == TRUE
LVEF_30to55 <- row["symp_cardiovasc_LV_30to55"] == TRUE
BNP <- (as.numeric(row["lab_BNP_admis"]) > co_BNP | as.numeric(row["lab_BNP_max"]) > co_BNP )
NTproBNP <- as.numeric(row["lab_NTproBNP"]) > co_NTproBNP
tropo <- as.numeric(row["lab_troponin_admis"]) > co_tropo
shock <- row["symp_cardiovasc_shock"] == TRUE
cardiovasc <- any(myocarditis, LVEF_under30, LVEF_30to55, NTproBNP, BNP, tropo, shock)
rash <- row["kawasaki_exanthema"] == TRUE
dermato <- any(rash)
organ_dysfunc <- sum(resp, renal, cardiovasc, dermato, na.rm = TRUE) >= 2
criteria2 <- sum(inflamm, lab_vals, req_hosp, organ_dysfunc, na.rm = TRUE) == 4
# criteria 3
## not evaluable
criteria3 = TRUE
# criteria 4
# COVID pos?
PCR_pos <- row["covid_PCR_pos"] == TRUE
stool_pos <- row["covid_PCR_stool_pos"] == TRUE
closecontact <- row["covid_closecontact"] == TRUE
IgA <- row["covid_IgA_pos"] == TRUE
IgM <- row["covid_IgM_pos"] == TRUE
IgG <- row["covid_IgG_pos"] == TRUE
any_sero <- row["covid_sero_pos"] == TRUE
criteria4 <- any(PCR_pos, stool_pos, closecontact, IgA, IgM, IgG, any_sero)
if (FALSE %in% c(criteria1, criteria2, criteria3, criteria4)){
criteria_fulfilled <- FALSE
} else if (NA %in% c(criteria1, criteria2, criteria3, criteria4)){
criteria_fulfilled <- NA
} else if (sum(criteria1, criteria2, criteria3, criteria4, na.rm = TRUE) == 4){
criteria_fulfilled <- TRUE
}
#criteria_fulfilled <- sum(criteria1, criteria2, criteria3, criteria4, na.rm = TRUE) == 4
return(c(pat_id, "criteria1_age" = criteria1, "criteria2_clinical" = criteria2, "criteria3_noAlt" = criteria3, "criteria4_recentExposure" = criteria4, "criteria_fulfilled" = criteria_fulfilled))
})
CDC_fulfilled <- CDC_fulfilled %>% t() %>% as_tibble()
CDC_fulfilled <- type_convert(CDC_fulfilled)
CDC_fulfilled_heatmap <- CDC_fulfilled
cols <- sapply(CDC_fulfilled_heatmap, is.logical)
CDC_fulfilled_heatmap[,cols] <- lapply(CDC_fulfilled_heatmap[,cols], as.numeric)
CDC_fulfilled_heatmap_melt <- CDC_fulfilled_heatmap %>% melt()
CDC_fulfilled_heatmap_melt[is.na(CDC_fulfilled_heatmap_melt)] <- 2
skim(CDC_fulfilled)| Name | CDC_fulfilled |
| Number of rows | 95 |
| Number of columns | 6 |
| _______________________ | |
| Column type frequency: | |
| character | 1 |
| logical | 5 |
| ________________________ | |
| Group variables | None |
Variable type: character
| skim_variable | n_missing | complete_rate | min | max | empty | n_unique | whitespace |
|---|---|---|---|---|---|---|---|
| patientID_int | 0 | 1 | 9 | 10 | 0 | 95 | 0 |
Variable type: logical
| skim_variable | n_missing | complete_rate | mean | count |
|---|---|---|---|---|
| criteria1_age | 0 | 1.00 | 1.00 | TRU: 95 |
| criteria2_clinical | 0 | 1.00 | 0.69 | TRU: 66, FAL: 29 |
| criteria3_noAlt | 0 | 1.00 | 1.00 | TRU: 95 |
| criteria4_recentExposure | 9 | 0.91 | 1.00 | TRU: 86 |
| criteria_fulfilled | 7 | 0.93 | 0.67 | TRU: 59, FAL: 29 |
All 6 criteria must be met:
#row <- df_singlecases[87, ]
WHO_fulfilled <- apply(df_singlecases, 1, function(row) {
pat_id <- row["patientID_int"]
# criteria 1
criteria1 = TRUE
# criteria 2: fever?
fever <- row["symp_fever"] == TRUE | row["kawasaki_fever"] == TRUE
criteria2 <- any(fever)
# criteria 3: clinical signs of multisystem involvement (at least 2)
## Rash, bilateral nonpurulent conjunctivitis, or mucocutaneous inflammation signs (oral, hands, or feet)
rash <- row["kawasaki_exanthema"] == TRUE
conjunctivitis <- row["kawasaki_conjunctivitis"] == TRUE
mucocutaneaous <- row["kawasaki_mouth"] == TRUE | row["kawasaki_extremity"] == TRUE
criteria3_a <- any(rash, conjunctivitis, mucocutaneaous)
## hypotension or shock
shock <- row["symp_cardiovasc_shock"] == TRUE
criteria3_b <- any(shock)
## cardiac dysfunction
myocarditis <- row["symp_cardiovasc_myocard"] == TRUE
pericarditis <- row["symp_cardiovasc_pericard"] == TRUE
LVEF_under30 <- row["symp_cardiovasc_LV_less30"] == TRUE
LVEF_30to55 <- row["symp_cardiovasc_LV_30to55"] == TRUE
BNP <- (as.numeric(row["lab_BNP_admis"]) > co_BNP | as.numeric(row["lab_BNP_max"]) > co_BNP )
NTproBNP <- as.numeric(row["lab_NTproBNP"]) > co_NTproBNP
tropo <- as.numeric(row["lab_troponin_admis"]) > co_tropo
coronary <- row["symp_cardiovasc_cordilat"] == TRUE | row["symp_cardiovasc_aneurysm"] == TRUE
criteria3_c <- any(myocarditis, LVEF_under30, LVEF_30to55, NTproBNP, BNP, tropo, coronary)
## coagulopathy
fibrinogen <- as.numeric(row["lab_fibrino"]) > co_fibrino
Ddimers <- as.numeric(row["lab_Ddim_peak"]) > co_Ddim | as.numeric(row["lab_Ddim_NS"]) > co_Ddim
criteria3_d <- any(fibrinogen, Ddimers)
## acute GI symptoms
GIsymp <- row["symp_GI_NS"] == TRUE | row["symp_GI_abdopain"] == TRUE | row["symp_GI_vomiting"] == TRUE | row["symp_GI_diarrh"] == TRUE | row["symp_GI_colitis"] == TRUE
criteria3_e <- any(GIsymp)
criteria3 <- sum(criteria3_a, criteria3_b, criteria3_c, criteria3_d, criteria3_e, na.rm = TRUE) >= 2
# criteria 4: Elevated markers of inflammation (eg, ESR, CRP, or procalcitonin)
neutrophilia <- as.numeric(row["lab_neutrophils"]) > co_neutrophilia
elevated_CRP <- (as.numeric(row["lab_CRP_admis"]) >= co_CRP) | (as.numeric(row["lab_CRP_NS"]) >= co_CRP) | (as.numeric(row["lab_CRP_peak"]) >= co_CRP )
# print(paste0(pat_id, elevated_CRP, row["lab_CRP_peak"]))
lymphopenia <- as.numeric(row["lab_lymphocytes_lowest"]) < co_lympho
ferritin <- (as.numeric(row["lab_ferritin_NS"]) > co_ferritin | as.numeric(row["lab_ferritin_admis"]) > co_ferritin | as.numeric(row["lab_ferritin_peak"]) > co_ferritin)
albumin <- as.numeric(row["lab_albumin_admis"]) < co_albu | as.numeric(row["lab_albumin_lowest"]) < co_albu | as.numeric(row["lab_albumin_NS"]) < co_albu
PCT <- as.numeric(row["lab_PCT_admis"]) > co_PCT | as.numeric(row["lab_PCT_peak"]) > co_PCT | as.numeric(row["lab_PCT_NS"]) > co_PCT
LDH <- as.numeric(row["lab_LDH"]) > co_LDH
IL6 <- as.numeric(row["lab_IL6"]) > co_IL6
ESR <- as.numeric(row["lab_ESR"]) > co_ESR
criteria4 <- any(neutrophilia, elevated_CRP, lymphopenia, ferritin, albumin, PCT, LDH, IL6, ESR)
# criteria 5: No other obvious microbial cause of inflammation
criteria5 <- TRUE
# criteria 6: COVID pos?
PCR_pos <- row["covid_PCR_pos"] == TRUE
stool_pos <- row["covid_PCR_stool_pos"] == TRUE
closecontact <- row["covid_closecontact"] == TRUE
IgA <- row["covid_IgA_pos"] == TRUE
IgM <- row["covid_IgM_pos"] == TRUE
IgG <- row["covid_IgG_pos"] == TRUE
any_sero <- row["covid_sero_pos"] == TRUE
criteria6 <- any(PCR_pos, stool_pos, closecontact, IgA, IgM, IgG, any_sero)
if (NA %in% c(criteria1, criteria2, criteria3, criteria4, criteria5, criteria6)){
criteria_fulfilled <- NA
} else if (FALSE %in% c(criteria1, criteria2, criteria3, criteria4, criteria5, criteria6)){
criteria_fulfilled <- FALSE
} else if (sum(criteria1, criteria2, criteria3, criteria4, criteria5, criteria6, na.rm = TRUE) == 6){
criteria_fulfilled <- TRUE
} else {
criteria_fulfilled <- FALSE
}
return(c(pat_id, "criteria1_age" = criteria1, "criteria2_fever" = criteria2, "criteria3_clinical" = criteria3, "criteria4_inflamm" = criteria4, "criteria5_noAlt" = criteria5, "criteria6_recentExposure" = criteria6, "criteria_fulfilled" = criteria_fulfilled))
})
WHO_fulfilled <- WHO_fulfilled %>% t() %>% as_tibble()
WHO_fulfilled <- type_convert(WHO_fulfilled)
WHO_fulfilled_heatmap <- WHO_fulfilled
cols <- sapply(WHO_fulfilled_heatmap, is.logical)
WHO_fulfilled_heatmap[,cols] <- lapply(WHO_fulfilled_heatmap[,cols], as.numeric)
WHO_fulfilled_heatmap_melt <- WHO_fulfilled_heatmap %>% melt()
WHO_fulfilled_heatmap_melt[is.na(WHO_fulfilled_heatmap_melt)] <- 2
skim(WHO_fulfilled)| Name | WHO_fulfilled |
| Number of rows | 95 |
| Number of columns | 8 |
| _______________________ | |
| Column type frequency: | |
| character | 1 |
| logical | 7 |
| ________________________ | |
| Group variables | None |
Variable type: character
| skim_variable | n_missing | complete_rate | min | max | empty | n_unique | whitespace |
|---|---|---|---|---|---|---|---|
| patientID_int | 0 | 1 | 9 | 10 | 0 | 95 | 0 |
Variable type: logical
| skim_variable | n_missing | complete_rate | mean | count |
|---|---|---|---|---|
| criteria1_age | 0 | 1.00 | 1.00 | TRU: 95 |
| criteria2_fever | 0 | 1.00 | 1.00 | TRU: 95 |
| criteria3_clinical | 0 | 1.00 | 0.98 | TRU: 93, FAL: 2 |
| criteria4_inflamm | 0 | 1.00 | 1.00 | TRU: 95 |
| criteria5_noAlt | 0 | 1.00 | 1.00 | TRU: 95 |
| criteria6_recentExposure | 9 | 0.91 | 1.00 | TRU: 86 |
| criteria_fulfilled | 9 | 0.91 | 0.98 | TRU: 84, FAL: 2 |
PIMS_TS_fulfilled_heatmap_melt$criteria <- "PIMS-TS"
WHO_fulfilled_heatmap_melt$criteria <- "WHO"
CDC_fulfilled_heatmap_melt$criteria <- "CDC"
full_heatmap <- rbind(PIMS_TS_fulfilled_heatmap_melt, WHO_fulfilled_heatmap_melt, CDC_fulfilled_heatmap_melt)
ggplot(full_heatmap, aes(x = variable, y = as.character(patientID_int), fill = as.factor(value))) + geom_tile() + theme_classic() + theme(axis.line=element_blank()) + labs(y = "Patient ID", x = "criteria", fill = "criteria met", title = "Overview of which single cases fulfill case definitions") + scale_fill_manual(labels = c("No", "Yes", "Missing"), values = wes_palette("Zissou1")) + theme(axis.text.x=element_text(angle=90, hjust=1)) + facet_wrap(~ criteria, scales = "free_x")criteria_summary <- data.frame(PIMS_TS_fulfilled %>% select(criteria_fulfilled), CDC_fulfilled %>% select(criteria_fulfilled), WHO_fulfilled %>% select(criteria_fulfilled))
colnames(criteria_summary) <- c("PIMS-TS", "CDC", "WHO")
cols <- sapply(criteria_summary, is.logical)
criteria_summary[,cols] <- lapply(criteria_summary[,cols], as.numeric)
criteria_summary <- criteria_summary %>% melt() %>%
group_by(variable) %>%
summarise(fulfilled = sum(value == 1, na.rm = TRUE), not_fulfilled = sum(value == 0, na.rm = TRUE), not_evaluable = sum(is.na(value)))
criteria_summary$sum <- rowSums(criteria_summary[,-1])
criteria_summary_melt <- criteria_summary %>% melt()
colnames(criteria_summary_melt) <- c("center", "fulfilled", "count")
fill_bar <- ggplot(criteria_summary_melt %>% filter(fulfilled != 'sum'), aes(x = center, y = count, fill = fulfilled)) +
geom_bar(stat = "identity", position = "fill") + theme_bw() +
labs(y = "ratio", title = "Single cases meeting which criteria", subtitle = paste0("percent of total (n = ", max(criteria_summary_melt$count) ,")")) +
scale_fill_manual(values = wes_palette("Royal1")[c(1,2,4)])
dodge_bar <- ggplot(criteria_summary_melt %>% filter(fulfilled != 'sum'), aes(x = center, y = count, fill = fulfilled)) +
geom_bar(stat = "identity", position = "dodge") + theme_bw() +
labs(y = "n", title = "Single cases meeting which criteria", subtitle = "absolute values") +
scale_fill_manual(values = wes_palette("Royal1")[c(1,2,4)])
ggarrange(dodge_bar, fill_bar, legend = "bottom", common.legend = TRUE)WHO_outcome <- WHO_fulfilled_heatmap %>% select(contains("patientID_int") | contains("criteria_fulfilled"))
colnames(WHO_outcome) <- c("patientID_int", "casedef_WHO_fulfilled")
CDC_outcome <- CDC_fulfilled_heatmap %>% select(contains("patientID_int") | contains("criteria_fulfilled"))
colnames(CDC_outcome) <- c("patientID_int", "casedef_CDC_fulfilled")
PIMS_TS_outcome <- PIMS_TS_fulfilled_heatmap %>% select(contains("patientID_int") | contains("criteria_fulfilled"))
colnames(PIMS_TS_outcome) <- c("patientID_int", "casedef_PIMS_TS_fulfilled")
assoc_outcome <- merge(WHO_outcome, CDC_outcome, by = "patientID_int")
assoc_outcome <- merge(assoc_outcome, PIMS_TS_outcome)
#assoc_outcome <- assoc_outcome[complete.cases(assoc_outcome[ ,-1]),]
outcome_params <- df_singlecases %>% select(patientID_int | symp_cardiovasc_cordilat | symp_cardiovasc_aneurysm | symp_cardiovasc_shock | outcome_death | critcare_MV | critcare_ECMO)
assoc_outcome_full <- merge(outcome_params, assoc_outcome, by = "patientID_int", all = TRUE)
cols <- sapply(assoc_outcome_full, is.logical)
assoc_outcome_full[,cols] <- lapply(assoc_outcome_full[,cols], as.numeric)
makeUpsetR(assoc_outcome_full %>% select(-contains("patientID")))A new variable ‘unfavourable course’ made, which contains the following:
Mild presentation means all of the above are either 0 or NA.
assoc_outcome <- merge(WHO_outcome, CDC_outcome, by = "patientID_int")
assoc_outcome <- merge(assoc_outcome, PIMS_TS_outcome)
#assoc_outcome <- #assoc_outcome[complete.cases(assoc_outcome[ ,-1]),]
outcome_params <- df_singlecases %>% select(patientID_int | contains("critcare") | contains("admis_PICU_admis") | contains("outcome_death") |contains ("symp_cardiovasc_cordilat") | contains ("symp_cardiovasc_aneurysm") |contains("symp_cardiovasc_shock"))
assoc_outcome_full <- merge(outcome_params, assoc_outcome, by = "patientID_int")
cols <- sapply(assoc_outcome_full, is.logical)
assoc_outcome_full[,cols] <- lapply(assoc_outcome_full[,cols], as.numeric)
assoc_outcome_full$unfavourable_course <- ifelse(assoc_outcome_full$symp_cardiovasc_cordilat == 1 | assoc_outcome_full$symp_cardiovasc_aneurysm == 1 | assoc_outcome_full$symp_cardiovasc_shock == 1 | assoc_outcome_full$outcome_death == 1 | assoc_outcome_full$critcare_MV == 1 | assoc_outcome_full$critcare_ECMO == 1 | assoc_outcome_full$critcare_RRT == 1 | assoc_outcome_full$admis_PICU_admis == 1 | assoc_outcome_full$critcare_inotrop == 1 , 1, 0)
assoc_outcome_full$mild_presentation <- ifelse((assoc_outcome_full$unfavourable_course == 0 | is.na(assoc_outcome_full$unfavourable_course)), 1, 0)
makeUpsetR(assoc_outcome_full %>% select(contains("casedef") | contains("unfavourable_course") ))A new variable ‘PICU candidate’ made, which contains the following:
Mild presentation means all of the above are either 0 or NA.
assoc_outcome <- merge(WHO_outcome, CDC_outcome, by = "patientID_int")
assoc_outcome <- merge(assoc_outcome, PIMS_TS_outcome)
#assoc_outcome <- assoc_outcome[complete.cases(assoc_outcome[ ,-1]),]
outcome_params <- df_singlecases %>% select(patientID_int | contains("critcare") | contains("admis_PICU_admis") | contains("outcome_death") |contains ("symp_cardiovasc_cordilat") | contains ("symp_cardiovasc_aneurysm") |contains("symp_cardiovasc_shock"))
assoc_outcome_full <- merge(outcome_params, assoc_outcome, by = "patientID_int")
cols <- sapply(assoc_outcome_full, is.logical)
assoc_outcome_full[,cols] <- lapply(assoc_outcome_full[,cols], as.numeric)
assoc_outcome_full$PICU_candidate <- ifelse( assoc_outcome_full$symp_cardiovasc_shock == 1 | assoc_outcome_full$outcome_death == 1 | assoc_outcome_full$critcare_MV == 1 | assoc_outcome_full$critcare_ECMO == 1 | assoc_outcome_full$critcare_RRT == 1 | assoc_outcome_full$admis_PICU_admis == 1 | assoc_outcome_full$critcare_inotrop == 1 , 1, 0)
assoc_outcome_full$mild_presentation <- ifelse((assoc_outcome_full$PICU_candidate == 0 | is.na(assoc_outcome_full$PICU_candidate)), 1, 0)
makeUpsetR(assoc_outcome_full %>% select(contains("casedef") | contains("PICU_candidate") ))var_cohort <- df_cohort %>% select(contains("sex") | ("cohort_id") | "tot_cases_n")
var_cohort$cohort_id <- paste0(var_cohort$cohort_id, " (n = ", var_cohort$tot_cases_n,")")
sex_f <- var_cohort %>% group_by(cohort_id) %>% summarize(prct = sex_f/tot_cases_n) %>% mutate(sex = "female")
sex_m <- var_cohort %>% group_by(cohort_id) %>% summarize(prct = sex_m/tot_cases_n) %>% mutate(sex = "male")
sex_all <- rbind(sex_f, sex_m)
p_sex_cohort <- ggplot(sex_all, aes(y = cohort_id, x = prct, fill = sex)) +
geom_bar(stat = "identity", position = "fill") +
theme_bw() + labs(x = "") + labs(y = "") +
scale_fill_manual(values = wes_palette("Royal1")) + theme(legend.position = "top", legend.title=element_blank())+
rremove("y.text")
var_controls <- df_cohort_controls %>% filter(cohort_type == "control") %>% select(contains("sex") | ("cohort_id") | "tot_cases_n")
var_controls$cohort_id <- paste0(var_controls$cohort_id, " (n = ", var_controls$tot_cases_n,")")
sex_f <- var_controls %>% group_by(cohort_id) %>% summarize(prct = sex_f/tot_cases_n) %>% mutate(sex = "female")
sex_m <- var_controls %>% group_by(cohort_id) %>% summarize(prct = sex_m/tot_cases_n) %>% mutate(sex = "male")
sex_all <- rbind(sex_f, sex_m)
p_sex_controls <- ggplot(sex_all, aes(y = cohort_id, x = prct, fill = sex)) +
geom_bar(stat = "identity", position = "fill") +
theme_bw() + labs(x = "") +
scale_fill_manual(values = wes_palette("Royal1"))+
theme(legend.position = "none") + labs(y = "")+
rremove("y.text")
n_single <- df_singlecases %>% nrow()
var_single <- df_singlecases %>% select(contains("sex"))
var_single$sex_m <- ifelse(var_single$sex == "M", TRUE, FALSE)
var_single$sex_f <- ifelse(var_single$sex == "F", TRUE, FALSE)
cols <- sapply(var_single, is.logical)
var_single[,cols] <- lapply(var_single[,cols], as.numeric)
var_single <- colSums(var_single %>% select(-sex), na.rm = TRUE)
var_single <- var_single/nrow(df_singlecases)*100
sex_single <- data.frame(cohort_id = paste0("single cases (n = ", n_single_cases, ")"), prct = c(var_single["sex_m"], var_single["sex_f"]), sex = c("male", "female"))
p_sex_single <- ggplot(sex_single, aes(y = cohort_id, x = prct, fill = sex)) +
geom_bar(stat = "identity", position = "fill") +
theme_bw() +
scale_fill_manual(values = wes_palette("Royal1"))+
theme(legend.position = "none") + labs(y = "", x = "Fraction")+ rremove("y.text")
plot_sex <- plot_grid(p_sex_cohort, p_sex_controls, p_sex_single, align = "v", nrow = 3, rel_heights = c(2/3, 1/5, 1/3))
plot_sexcohort_age <- df_cohort_controls %>% select(contains("cohort_id") | contains("age") | contains("cohort_type") | contains("tot_cases_n"))
cohort_age$cohort_id <- paste0(cohort_age$cohort_id, " (n = ", cohort_age$tot_cases_n,")")
cohort_age$age_med_yrs <- as.numeric(cohort_age$age_med_yrs )
cohort_age$age_Q1_yrs <- as.numeric(cohort_age$age_Q1_yrs)
cohort_age$age_Q3_yrs <- as.numeric(cohort_age$age_Q3_yrs)
cohort_age$age_min_yrs <- as.numeric(cohort_age$age_min_yrs)
cohort_age$age_max_yrs <- as.numeric(cohort_age$age_max_yrs)
cohort_age$data_descr <- ifelse(!is.na(cohort_age$age_Q1_yrs) & is.na(cohort_age$age_min_yrs) , "IQR",
ifelse(is.na(cohort_age$age_Q1_yrs) & !is.na(cohort_age$age_min_yrs), "range",
ifelse(!is.na(cohort_age$age_Q1_yrs) & !is.na(cohort_age$age_min_yrs), "IQR + range", "none")))
p_age_cohort <- ggplot(cohort_age %>% filter(cohort_type == "covid"), aes(y = cohort_id, x = age_med_yrs, col = data_descr)) +
geom_point(size = 4) +
geom_errorbar(aes(xmin=age_Q1_yrs, xmax=age_Q3_yrs), width=.8, position=position_dodge(.9)) +
geom_errorbar(aes(xmin=age_min_yrs, xmax=age_max_yrs), width=.2, position=position_dodge(.9)) +
theme_bw() + lims(x = c(0,21)) +
labs(y = "", x = "", col = "bars") + theme(legend.position="top", legend.title=element_blank())+
scale_color_manual(values = c(wes_palette("BottleRocket2")[1:3], wes_palette("BottleRocket1")[2]))
p_age_controls <- ggplot(cohort_age %>% filter(cohort_type != "covid"), aes(y = cohort_id, x = age_med_yrs, col = data_descr)) +
geom_point(size = 4) +
geom_errorbar(aes(xmin=age_Q1_yrs, xmax=age_Q3_yrs), width=.2, position=position_dodge(.9)) +
geom_errorbar(aes(xmin=age_min_yrs, xmax=age_max_yrs), width=.2, position=position_dodge(.9)) +
theme_bw() + lims(x = c(0,21)) +
labs(y = "", x = "", col = "bars") + theme(legend.position="none")+
scale_color_manual(values = wes_palette("BottleRocket2")[1])
p_age_single <- ggplot(df_singlecases, aes(x = as.numeric(age), y = paste0("single cases (n = ", n_single,")"))) +
geom_violin(fill = wes_palette("Darjeeling2")[4]) +
geom_boxplot(width=.3, fill = wes_palette("Darjeeling2")[1]) +
theme_bw() + geom_beeswarm(groupOnX=FALSE, alpha = 0.5) + lims(x = c(0,21)) +
labs(y = "", x = "Age (years)")
plot_age <- plot_grid(p_age_cohort, p_age_controls, p_age_single, align = "v", nrow = 3, rel_heights = c(2/3, 1/5, 1/3))
plot_agefigure <- ggarrange(plot_age, plot_sex, labels = c("A", "B"), widths = c(1.25,1))
ggsave(figure, filename = "./plots/demo_grid_plots.png", dpi = 300, height=7, width=10)
ggsave(figure, filename = "./plots/demo_grid_plots.svg", dpi = 300, height=7, width=10)
ggsave(figure, filename = "./plots/demo_grid_plots.pdf", dpi = 300, height=7, width=10)
figure## [1] "Column extracted from cohorts:"
## [1] "lab_CRP_baseline_n" "lab_CRP_baseline_med" "lab_CRP_baseline_Q1"
## [4] "lab_CRP_baseline_Q3" "lab_CRP_peak_n" "lab_CRP_peak_med"
## [7] "lab_CRP_peak_Q1" "lab_CRP_peak_Q3" "lab_CRP_NS_n"
## [10] "lab_CRP_NS_med" "lab_CRP_NS_Q1" "lab_CRP_NS_Q3"
## [13] "cohort_id" "cohort_type" "tot_cases_n"
## [1] "Column extracted from single cases:"
## [1] "lab_CRP_admis" "lab_CRP_NS" "lab_CRP_peak"
crp_missing <- sum(is.na(crp_collapse_single$CRP_max))
p_crp_cohort <- ggplot(crp_collapse_cohort, aes(y = cohort_id, x = CRP_med, col = cohort_type)) +
geom_point() +
geom_errorbar(aes(xmin=CRP_min, xmax=CRP_max), width=.2, position=position_dodge(.9)) + lims(x = c(0,600)) +
theme_bw() + labs(title = "CRP", y = "cohort", x = "") +
geom_vline(xintercept = co_CRP, linetype = "dashed", color = "black") + theme(legend.justification = c(1, 1), legend.position = c(0.98, 0.98), legend.title=element_blank()) +
scale_color_manual(values = wes_palette("Royal1"))
p_crp_single <- ggplot(crp_collapse_single, aes(x = as.numeric(CRP_max), y = cohort_id)) +
geom_violin(fill = wes_palette("Darjeeling2")[4]) +
geom_boxplot(width=.3, fill = wes_palette("Darjeeling2")[1]) +
theme_bw() + geom_beeswarm(groupOnX=FALSE, alpha = 0.5) + lims(x = c(0,600)) + labs(y = "", x = "CRP (mg/dL)", subtitle = paste0("missing data for ", crp_missing, " cases")) +
geom_hline(yintercept = co_CRP, linetype = "dashed", color = "black")
CRP_grid <- plot_grid(p_crp_cohort, p_crp_single, align = "v", nrow = 2, rel_heights = c(2/3, 1/3))
CRP_grid## [1] "Column extracted from cohorts:"
## [1] "lab_ferritin_NS_n" "lab_ferritin_NS_med"
## [3] "lab_ferritin_NS_Q1" "lab_ferritin_NS_Q3"
## [5] "lab_ferritin_baseline_n" "lab_ferritin_baseline_med"
## [7] "lab_ferritin_peak_n" "lab_ferritin_peak_med"
## [9] "lab_ferritin_peak_Q1" "lab_ferritin_peak_Q3"
## [11] "cohort_id" "cohort_type"
## [13] "tot_cases_n"
## [1] "Column extracted from single cases:"
## [1] "lab_ferritin_NS" "lab_ferritin_admis" "lab_ferritin_peak"
ferritin_missing <- sum(is.na(ferritin_collapse_single$ferrit_max))
p_ferritin_cohort <- ggplot(ferritin_collapse_cohort, aes(y = cohort_id, x = ferrit_med, col = cohort_type)) +
geom_point() +
geom_errorbar(aes(xmin=ferrit_min, xmax=ferrit_max), width=.2, position=position_dodge(.9)) + lims(x = c(0,11000)) +
theme_bw() + labs(title = "Ferritin", y = "cohort", x = "") +
geom_vline(xintercept = co_ferritin, linetype = "dashed", color = "black") + theme(legend.justification = c(1, 1), legend.position = "none", legend.title=element_blank()) +
scale_color_manual(values = wes_palette("Royal1"))
p_ferritin_single <- ggplot(ferritin_collapse_single, aes(x = as.numeric(ferrit_max), y = cohort_id)) +
geom_violin(fill = wes_palette("Darjeeling2")[4]) +
geom_boxplot(width=.3, fill = wes_palette("Darjeeling2")[1]) +
theme_bw() + geom_beeswarm(groupOnX=FALSE, alpha = 0.5) + labs(y = "", x = "Ferritin (µg/l)", subtitle = paste0("missing data for ", ferritin_missing, " cases")) + lims(x = c(0,11000)) +
geom_vline(xintercept = co_ferritin, linetype = "dashed", color = "black")
ferritin_grid <- plot_grid(p_ferritin_cohort, p_ferritin_single, align = "v", nrow = 2, rel_heights = c(2/3, 1/3))
ferritin_gridNote: The cases from Pouletty et al are added to the single cases as they report on IL6 values.
## [1] "Column extracted from cohorts:"
## [1] "lab_IL6_baseline_n" "lab_IL6_baseline_med" "lab_IL6_baseline_Q1"
## [4] "lab_IL6_baseline_Q3" "lab_IL6_NS_n" "lab_IL6_NS_med"
## [7] "lab_IL6_NS_Q1" "lab_IL6_NS_Q3" "cohort_id"
## [10] "cohort_type" "tot_cases_n"
## [1] "Column extracted from single cases:"
## [1] "lab_IL6"
IL6_missing <- sum(is.na(IL6_collapse_single$IL6_max))
p_IL6_cohort <- ggplot(IL6_collapse_cohort, aes(y = cohort_id, x = IL6_med, col = cohort_type)) +
geom_point() +
geom_errorbar(aes(xmin=IL6_min, xmax=IL6_max), width=.2, position=position_dodge(.9)) + lims(x = c(0,2500)) +
theme_bw() + labs(title = "IL6", y = "cohort", x = "") +
geom_vline(xintercept = co_IL6, linetype = "dashed", color = "black") + theme(legend.justification = c(1, 1), legend.position = "none", legend.title=element_blank()) +
scale_color_manual(values = wes_palette("Royal1"))
p_IL6_single <- ggplot(IL6_collapse_single, aes(x = as.numeric(IL6_max), y = cohort_id)) +
geom_violin(fill = wes_palette("Darjeeling2")[4]) +
geom_boxplot(width=.3, fill = wes_palette("Darjeeling2")[1]) +
theme_bw() + geom_beeswarm(groupOnX=FALSE, alpha = 0.5) + labs(y = "", x = "IL6 (pg/ml)", subtitle = paste0("missing data for ", IL6_missing, " cases")) + lims(x = c(0,2500)) +
geom_vline(xintercept = co_IL6, linetype = "dashed", color = "black")
IL6_grid <- plot_grid(p_IL6_cohort, p_IL6_single, align = "v", nrow = 2, rel_heights = c(2/3, 1/3))
IL6_grid## [1] "Column extracted from cohorts:"
## [1] "lab_WBC_NS_n" "lab_WBC_NS_med" "lab_WBC_NS_Q1"
## [4] "lab_WBC_NS_Q3" "lab_WBC_baseline_n" "lab_WBC_baseline_med"
## [7] "cohort_id" "cohort_type" "tot_cases_n"
## [1] "Column extracted from single cases:"
## [1] "lab_WBC_highest"
wbc_missing <- sum(is.na(wbc_collapse_single$WBC_max))
p_wbc_cohort <- ggplot(wbc_collapse_cohort, aes(y = cohort_id, x = WBC_med, col = cohort_type)) +
geom_point() +
geom_errorbar(aes(xmin=WBC_min, xmax=WBC_max), width=.2, position=position_dodge(.9)) + lims(x = c(0,50000)) +
theme_bw() + labs(title = "White blood cells", y = "", x = "") +
geom_vline(xintercept = co_WBC, linetype = "dashed", color = "black") + theme(legend.justification = c(1, 1), legend.position = "none", legend.title=element_blank()) +
scale_color_manual(values = wes_palette("Royal1"))+ rremove("y.text")
p_wbc_single <- ggplot(wbc_collapse_single, aes(x = as.numeric(WBC_max), y = cohort_id)) +
geom_violin(fill = wes_palette("Darjeeling2")[4]) +
geom_boxplot(width=.3, fill = wes_palette("Darjeeling2")[1]) +
theme_bw() + geom_beeswarm(groupOnX=FALSE, alpha = 0.5) + labs(y = "", x = "WBC (/µL)", subtitle = paste0("missing data for ", wbc_missing, " cases")) + lims(x = c(0,50000)) +
geom_vline(xintercept = co_WBC, linetype = "dashed", color = "black") + rremove("y.text")
WBC_grid <- plot_grid(p_wbc_cohort, p_wbc_single, align = "v", nrow = 2, rel_heights = c(2/3, 1/3))
WBC_grid## [1] "Column extracted from cohorts:"
## [1] "lab_lympho_NS_n" "lab_lympho_NS_med"
## [3] "lab_lympho_NS_Q1" "lab_lympho_NS_Q3"
## [5] "lab_lympho_baseline_n" "lab_lympho_baseline_med"
## [7] "cohort_id" "cohort_type"
## [9] "tot_cases_n"
## [1] "Column extracted from single cases:"
## [1] "lab_lymphocytes_lowest"
lympho_missing <- sum(is.na(lympho_collapse_single$lympho_min))
p_lympho_cohort <- ggplot(lympho_collapse_cohort, aes(y = cohort_id, x = lympho_med, col = cohort_type)) +
geom_point() +
geom_errorbar(aes(xmin=lympho_min, xmax=lympho_max), width=.2, position=position_dodge(.9)) +
theme_bw() + labs(title = "Lymphocytes", y = "", x = "") + lims(x = c(0,7500)) +
geom_vline(xintercept = co_lympho, linetype = "dashed", color = "black") + theme(legend.justification = c(1, 1), legend.position = "none", legend.title=element_blank()) +
scale_color_manual(values = wes_palette("Royal1"))+
rremove("y.text")
p_lympho_single <- ggplot(lympho_collapse_single, aes(x = as.numeric(lympho_min), y = cohort_id)) +
geom_violin(fill = wes_palette("Darjeeling2")[4]) +
geom_boxplot(width=.3, fill = wes_palette("Darjeeling2")[1]) +
lims(x = c(0,7500))+
theme_bw() + geom_beeswarm(groupOnX=FALSE, alpha = 0.5) + labs(y = "", x = "Lymphocytes (/µL)", subtitle = paste0("missing data for ", lympho_missing, " cases")) +
geom_vline(xintercept = co_lympho, linetype = "dashed", color = "black") + rremove("y.text")
lympho_grid <- plot_grid(p_lympho_cohort, p_lympho_single, align = "v", nrow = 2, rel_heights = c(2/3, 1/3))
lympho_grid## [1] "Column extracted from cohorts:"
## [1] "lab_troponin_baseline_n" "lab_troponin_baseline_med"
## [3] "lab_troponin_baseline_Q1" "lab_troponin_baseline_Q3"
## [5] "lab_troponin_peak_n" "lab_troponin_peak_med"
## [7] "lab_troponin_peak_Q1" "lab_troponin_peak_Q3"
## [9] "lab_troponin_NS_n" "lab_troponin_NS_med"
## [11] "lab_troponin_NS_Q1" "lab_troponin_NS_Q3"
## [13] "cohort_id" "cohort_type"
## [15] "tot_cases_n"
## [1] "Column extracted from single cases:"
## [1] "lab_troponin_admis" "lab_troponin_max"
troponin_missing <- sum(is.na(troponin_collapse_single$troponin_max))
p_troponin_cohort <- ggplot(troponin_collapse_cohort, aes(y = cohort_id, x = troponin_med, col = cohort_type)) +
geom_point() +
geom_errorbar(aes(xmin=troponin_min, xmax=troponin_max), width=.2, position=position_dodge(.9)) + lims(x = c(0,7000)) +
theme_bw() + labs(title = "Troponin", y = "", x = "") +
geom_vline(xintercept = co_tropo, linetype = "dashed", color = "black") + theme(legend.justification = c(1, 1), legend.position = "none", legend.title=element_blank()) +
scale_color_manual(values = wes_palette("Royal1"))+ rremove("y.text")
p_troponin_single <- ggplot(troponin_collapse_single, aes(x = as.numeric(troponin_max), y = cohort_id)) +
geom_violin(fill = wes_palette("Darjeeling2")[4]) +
geom_boxplot(width=.3, fill = wes_palette("Darjeeling2")[1]) +
theme_bw() + geom_beeswarm(groupOnX=FALSE, alpha = 0.5) + labs(y = "", x = "Troponin (ng/L)", subtitle = paste0("missing data for ", troponin_missing, " cases")) + lims(x = c(0,7000)) +
geom_vline(xintercept = co_tropo, linetype = "dashed", color = "black") + rremove("y.text")
troponin_grid <- plot_grid(p_troponin_cohort, p_troponin_single, align = "v", nrow = 2, rel_heights = c(2/3, 1/3))
troponin_grid## [1] "Column extracted from cohorts:"
## [1] "lab_platelet_NS_n" "lab_platelet_NS_med"
## [3] "lab_platelet_NS_Q1" "lab_platelet_NS_Q3"
## [5] "lab_platelet_baseline_n" "lab_platelet_baseline_med"
## [7] "lab_platelet_lowest_n" "lab_platelet_lowest_med"
## [9] "lab_platelet_lowest_Q1" "lab_platelet_lowest_Q3"
## [11] "cohort_id" "cohort_type"
## [13] "tot_cases_n"
## [1] "Column extracted from single cases:"
## [1] "lab_platelets_NS" "lab_platelets_highest" "lab_platelets_lowest"
missing <- sum(is.na(collapse_single$platelet_min))
p_platelet_cohort <- ggplot(collapse_cohort, aes(y = cohort_id, x = platelet_med/1000, col = cohort_type)) +
geom_point() +
geom_errorbar(aes(xmin=platelet_min/1000, xmax=platelet_max/1000, col=cohort_type), width=.2, position=position_dodge(.9)) + lims(x = c(0,750)) +
theme_bw() + labs(title = "Platelets", y = "", x = "") +
geom_vline(xintercept = co_platelet/1000, linetype = "dashed", color = "black") + theme(legend.justification = c(1, 1), legend.position = "none", legend.title=element_blank()) +
scale_color_manual(values = wes_palette("Royal1"))+ rremove("y.text")
p_platelet_single <- ggplot(collapse_single, aes(x = as.numeric(platelet_min)/1000, y = cohort_id)) +
geom_violin(fill = wes_palette("Darjeeling2")[4]) +
geom_boxplot(width=.3, fill = wes_palette("Darjeeling2")[1]) +
theme_bw() + geom_beeswarm(groupOnX=FALSE, alpha = 0.5) + labs(y = "", x = "Platelets (x1000/µL)", subtitle = paste0("missing data for ", missing, " cases")) + lims(x = c(0,750)) +
geom_vline(xintercept = co_platelet, linetype = "dashed", color = "black") + rremove("y.text")
platelet_grid <- plot_grid(p_platelet_cohort, p_platelet_single, align = "v", nrow = 2, rel_heights = c(2/3, 1/3))
platelet_grid## [1] "Column extracted from cohorts:"
## [1] "lab_Ddim_baseline_n" "lab_Ddim_baseline_med" "lab_Ddim_baseline_Q1"
## [4] "lab_Ddim_baseline_Q3" "lab_Ddim_NS_n" "lab_Ddim_NS_med"
## [7] "lab_Ddim_NS_Q1" "lab_Ddim_NS_Q3" "lab_Ddim_peak_n"
## [10] "lab_Ddim_peak_med" "lab_Ddim_peak_Q1" "lab_Ddim_peak_Q3"
## [13] "cohort_id" "cohort_type" "tot_cases_n"
## [1] "Column extracted from single cases:"
## [1] "lab_Ddim_NS" "lab_Ddim_peak"
missing <- sum(is.na(collapse_single$Ddim_max))
p_Ddim_cohort <- ggplot(collapse_cohort, aes(y = cohort_id, x = Ddim_med, col = cohort_type)) +
geom_point() +
geom_errorbar(aes(xmin=Ddim_min, xmax=Ddim_max, col=cohort_type), width=.2, position=position_dodge(.9)) + lims(x = c(0,11000)) +
theme_bw() + labs(title = "D-dimers", y = "", x = "") +
geom_vline(xintercept = co_Ddim, linetype = "dashed", color = "black") + theme(legend.justification = c(1, 1), legend.position = "none", legend.title=element_blank()) +
scale_color_manual(values = wes_palette("Royal1")) + rremove("y.text")
p_Ddim_single <- ggplot(collapse_single, aes(x = as.numeric(Ddim_max), y = cohort_id)) +
geom_violin(fill = wes_palette("Darjeeling2")[4]) +
geom_boxplot(width=.3, fill = wes_palette("Darjeeling2")[1]) +
theme_bw() + geom_beeswarm(groupOnX=FALSE, alpha = 0.5) + labs(y = "", x = "D-dimers (ng/ml)", subtitle = paste0("missing data for ", missing, " cases")) + lims(x = c(0,11000)) +
geom_vline(xintercept = co_Ddim, linetype = "dashed", color = "black") + rremove("y.text")
Ddim_grid <- plot_grid(p_Ddim_cohort, p_Ddim_single, align = "v", nrow = 2, rel_heights = c(2/3, 1/3))
Ddim_grid## [1] "Column extracted from cohorts:"
## [1] "lab_sodium_NS_n" "lab_sodium_NS_med"
## [3] "lab_sodium_NS_Q1" "lab_sodium_NS_Q3"
## [5] "lab_sodium_baseline_n" "lab_sodium_baseline_med"
## [7] "cohort_id" "cohort_type"
## [9] "tot_cases_n"
## [1] "Column extracted from single cases:"
## [1] "lab_sodium"
missing <- sum(is.na(collapse_single$sodium_min))
p_sodium_cohort <- ggplot(collapse_cohort, aes(y = cohort_id, x = sodium_med, col = cohort_type)) +
geom_point() +
geom_errorbar(aes(xmin=sodium_min, xmax=sodium_max, col=cohort_type), width=.2, position=position_dodge(.9)) + lims(x = c(100,150)) +
theme_bw() + labs(title = "Sodium", y = "", x = "") +
geom_vline(xintercept = co_sodium, linetype = "dashed", color = "black") + theme(legend.justification = c(1, 1), legend.position = "none", legend.title=element_blank()) +
scale_color_manual(values = wes_palette("Royal1"))+ rremove("y.text")
p_sodium_single <- ggplot(collapse_single, aes(x = as.numeric(sodium_min), y = cohort_id)) +
geom_violin(fill = wes_palette("Darjeeling2")[4]) +
geom_boxplot(width=.3, fill = wes_palette("Darjeeling2")[1]) +
theme_bw() + geom_beeswarm(groupOnX=FALSE, alpha = 0.5) + labs(y = "", col = "", x = "Sodium (mmol/L)", subtitle = paste0("missing data for ", missing, " cases")) + lims(x = c(100,150)) +
geom_vline(xintercept = co_sodium, linetype = "dashed", color = "black") + rremove("y.text")
sodium_grid <- plot_grid(p_sodium_cohort, p_sodium_single, align = "v", nrow = 2, rel_heights = c(2/3, 1/3))
sodium_gridExample:
Dashed lines equals reference value cut-off.
figure <- ggarrange(CRP_grid, WBC_grid, sodium_grid, ferritin_grid, lympho_grid, Ddim_grid, IL6_grid, platelet_grid, troponin_grid, labels = c("A", "B", "C", "D", "E", "G", "G", "H", "I"), widths = c(1.25,1,1))
ggsave(figure, filename = "./plots/lab_grid_plots.png", dpi = 300, height=16, width=12)
ggsave(figure, filename = "./plots/lab_grid_plots.svg", dpi = 300, height=12, width=16)
ggsave(figure, filename = "./plots/lab_grid_plots.pdf", dpi = 300, height=12, width=16)
figure## R version 3.6.3 (2020-02-29)
## Platform: x86_64-apple-darwin15.6.0 (64-bit)
## Running under: macOS Catalina 10.15.5
##
## Matrix products: default
## BLAS: /Library/Frameworks/R.framework/Versions/3.6/Resources/lib/libRblas.0.dylib
## LAPACK: /Library/Frameworks/R.framework/Versions/3.6/Resources/lib/libRlapack.dylib
##
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] gdtools_0.2.1 wesanderson_0.3.6 see_0.5.1 UpSetR_1.4.0
## [5] skimr_2.1.1 psych_1.9.12.31 zoo_1.8-7 DT_0.13
## [9] naniar_0.5.2 cowplot_1.0.0 ggpubr_0.2.5 magrittr_1.5
## [13] ggbeeswarm_0.6.0 ggExtra_0.9 gridExtra_2.3 ggrepel_0.8.2
## [17] scales_1.1.1 RColorBrewer_1.1-2 broom_0.5.5 reshape2_1.4.3
## [21] httr_1.4.1 readxl_1.3.1 forcats_0.5.0 stringr_1.4.0
## [25] dplyr_0.8.5 purrr_0.3.4 readr_1.3.1 tidyr_1.0.2
## [29] tibble_3.0.1 ggplot2_3.3.1 tidyverse_1.3.0
##
## loaded via a namespace (and not attached):
## [1] nlme_3.1-144 fs_1.4.0 lubridate_1.7.4 insight_0.8.5
## [5] repr_1.1.0 tools_3.6.3 backports_1.1.7 R6_2.4.1
## [9] vipor_0.4.5 DBI_1.1.0 colorspace_1.4-1 withr_2.2.0
## [13] tidyselect_1.1.0 mnormt_1.5-6 compiler_3.6.3 cli_2.0.2
## [17] rvest_0.3.5 xml2_1.3.0 labeling_0.3 bayestestR_0.7.0
## [21] ggridges_0.5.2 systemfonts_0.1.1 digest_0.6.25 svglite_1.2.3
## [25] rmarkdown_2.1 base64enc_0.1-3 pkgconfig_2.0.3 htmltools_0.4.0
## [29] highr_0.8 dbplyr_1.4.2 fastmap_1.0.1 htmlwidgets_1.5.1
## [33] rlang_0.4.6 rstudioapi_0.11 shiny_1.4.0.2 farver_2.0.3
## [37] generics_0.0.2 jsonlite_1.6.1 crosstalk_1.1.0.1 parameters_0.8.0
## [41] Rcpp_1.0.4 munsell_0.5.0 fansi_0.4.1 lifecycle_0.2.0
## [45] visdat_0.5.3 stringi_1.4.6 yaml_2.2.1 plyr_1.8.6
## [49] grid_3.6.3 parallel_3.6.3 promises_1.1.0 crayon_1.3.4
## [53] miniUI_0.1.1.1 lattice_0.20-38 haven_2.2.0 hms_0.5.3
## [57] knitr_1.28 pillar_1.4.4 ggsignif_0.6.0 effectsize_0.3.1
## [61] reprex_0.3.0 glue_1.4.1 evaluate_0.14 modelr_0.1.6
## [65] vctrs_0.3.0 httpuv_1.5.2 cellranger_1.1.0 gtable_0.3.0
## [69] assertthat_0.2.1 xfun_0.12 mime_0.9 xtable_1.8-4
## [73] later_1.0.0 beeswarm_0.2.3 ellipsis_0.3.1